[opencms-dev] static export 404 on Template Resources

Gerd Schrick mail at schrick-design.de
Tue Jun 12 02:13:26 CEST 2018


Hi Kai,

again the perfect hint from you! :-)

"Everything from the root folder is omitted." and the example - this was eye-opening and should IMO be added to the docs!
I assumed the property can only be used to simply "rename" a folder ... but instead it's a powerful feature and I detected that even just "/" on my "/sites/mysite" folder works and exactly results in what I desired.

OpenCms is great!

Little off-topic question you could possibly answer:
In the manifest.xml of a site's database export I see <flags>0</flags>
What is this for? (just to get the idea/reason behind)
[ Background: I've created an "import tool" based on an Apache Ant build that can create such a "database export" to migrate/import content to OpenCms.
Works great for Apache Lenya repositories.
Currently I do some refinements to make it easier to customize for other (file based) sources e.g. a static website.
If this then is also of interest for others I'm happy to contribute/share it. ]

Best regards,
Gerd

Am 11. Juni 2018 09:04:54 MESZ schrieb "Schliemann, Kai" <K.Schliemann at comundus.com>:
>Hi Gerd,
>I can give you an answer for question 1:
>There is a property called „exportname“. You can define a foldername
>there. Everything from the root folder is omitted.
>A common use case is, to set this on the resources folder of your
>module. If you define the exportname „res“ on the resources folder of a
>module you get something like this:
>
>https://www.comundus.com/export/res/plugins/bootstrap-smartmenu/css/jquery.smartmenus.bootstrap.min.css
>
>instead of
>
>https://www.comundus.com/export/system/modules/com.comundus.internet.template/resources/plugins/bootstrap-smartmenu/css/jquery.smartmenus.bootstrap.min.css
>
>You can do the same with resources in your site.
>
>In most of our projects we use absolute links instead of relative
>links. But that’s just a matter of taste.
>
>2.
>I don’t know exactly, but I recognized, that it is always created, when
>the parent folder is a navigation folder.
>
>HTH
>Best regards
>Kai
>
>
>Von: opencms-dev-bounces at opencms.org <opencms-dev-bounces at opencms.org>
>Im Auftrag von Gerd Schrick
>Gesendet: Montag, 11. Juni 2018 03:53
>An: The OpenCms mailing list <opencms-dev at opencms.org>
>Betreff: Re: [opencms-dev] static export 404 on Template Resources
>
>Hi Kai (and all),
>
>success! ... with some (smaller) issues/questions.
>
>A bit awkward to admit: the fix simply was to explicitly set the export
>property of /sites/mysite to true.
>I ignored this most of the time, because of the feedback "... 404" (in
>contrast to "... ignored" at some other resources) in the output; so I
>thought that OpenCms really tries to export the resource but failed for
>some reason. (solution details and config below)
>
>1. the exported site shall be used at
>www.somesite.de<http://www.somesite.de> w/o "/sites/mysite/". With
>relative links to other pages this works, but then "../../" in links to
>the (template) module resources is too much (although it works in
>Apache or Tomcat locally).
>Is there a way to config a "correct" export for that?
>With additional <rfs-rule> element(s)?
>
>2. what's the reason for the additional files "index_export.html" as
>they are the same as the corresponding "index.html"?
>
>3. (and related to 1.) the docu says: "create a full static copy of a
>side that can [...] be stored on an USB stick or CD-Rom.".
>That sounds to me that the site can then be browsed from the
>stick/CD-Rom ... but all the links to pages point to "somepage/"
>(instead of e.g "somepage/index.html") what does not work w/o a
>webserver.
>Is my assumption wrong or how to do that?
>
>4. as soon as I add a <rfs-rule> for "/sites/mysite/.*" in the config
>(see below), the styles in Administration/Database Management (and
>other) are broken: new_admin.css gets referenced someplace within
>"mysite".
>Why this? (although the rule obviously does not match anything in
>"/system/workplace/commons")
>
>Thanks for clarification.
>
>Best regards,
>
>Gerd
>
>
>How the full static export works for me (Tomcat standalone on Linux):
>
>1. all config is just the default (as it was after a fresh 10.5.3
>install)
>
>2. have a site "mysite" with root folder "/sites/mysite" that is
>published
>
>3. set property "export" of the sites' root folder to true (this
>setting must also be published!)
>
>4. in opencms-importexport.xml add this to <rendersettings> element
>(see doku):
><rfs-rules>
><rfs-rule>
><name>MySite</name>
><description>rfs-rule for site mysite</description>
><source>/sites/mysite/.*</source>
><rfs-prefix></rfs-prefix>
><exportpath>/home/gsuser/tomcat-8.5.11/webapps/ROOT</exportpath>
><userelativelinks>true</userelativelinks>
><related-system-res>
><regex>/system/modules/mysite.template/.*</regex>
></related-system-res>
></rfs-rule>
><rfs-rule>
><!-- GS: fix for broken Workspace styles (old UI) -->
><name>cmnsStyle</name>
><description>Fix for 404 @
>/system/workplace/commons/style/new_admin.css</description>
><source>/.*</source>
><rfs-prefix>${CONTEXT_NAME}/export</rfs-prefix>
><exportpath>export</exportpath>
><related-system-res>
><regex>/system/workplace/commons/style/.*</regex>
></related-system-res>
></rfs-rule>
></rfs-rules>
>NOTE: the 2nd rfs-rule is required to fix the broken styles in
>Administration (see above)
>5. restart Tomcat required after the changes in 4.
>
>
>"Schliemann, Kai"
><K.Schliemann at comundus.com<mailto:K.Schliemann at comundus.com>> hat am 8.
>Juni 2018 um 10:41 geschrieben:
>
>Hi Gerd,
>
>ok here are some hints. Maybe they help.
>
>Your setting in opencms-importexport.xml tells OpenCms to only export
>files with the file extensions mentioned in „defaultsuffixes“. If you
>want all resources (html, css, js, images…) to be exported, you have to
>either set „defaultpropertyvalue“ to „true“ (in
>opencms-importexport.xml) or set the property „export“ on e.g. the root
>folder of your site (e.g. on „sites/default/“)In order to make static
>export work properly, you have to add the cms:link-Tag to resources in
>your templates. Not just the elements (like a logo) which style your
>website, but all resources which reside in OpenCms. E.g. using a link
>element in one of your XSDs. No matter, if you link to pages, images or
>download files. One exception. If you use the cms:img tag, you must not
>use the cms:link tag with it. So never mix cms:img and cms:link
>tag.Check port of Tomcat (that‘s what I already told you)You may also
>check this thread: https://github.com/alkacon/opencms-core/issues/494
>
>
>
>Hope one of these hints help you. Please let me know. I am curious.
>
>
>
>Best regards
>
>Kai
>
>
>
>
>
>
>
>Von:
>opencms-dev-bounces at opencms.org<mailto:opencms-dev-bounces at opencms.org>
><opencms-dev-bounces at opencms.org<mailto:opencms-dev-bounces at opencms.org>>
>Im Auftrag von Gerd Schrick
>Gesendet: Donnerstag, 7. Juni 2018 20:13
>An: The OpenCms mailing list
><opencms-dev at opencms.org<mailto:opencms-dev at opencms.org>>
>Betreff: Re: [opencms-dev] static export 404 on Template Resources
>
>
>
>Dear OpenCms Gurus,
>
>pleeeeease help!!! ;-)
>I guess I'm dearly overlooking some details.
>
>I've created a relative simple site and now I want to do a full static
>export, so it can be hosted (w/o OpenCms).
>
>
>
>To do this I use Database Management / Start Static Export.
>
>Seems basically to work BUT:
>
>1. (the main problem): all the "Non-Template Resources" are exported,
>but for all of the "Template Resources" it just says "... 404"
>
>example:
>
>( 9 / 706 ) Exporting /sites/mysite/material/press/ ... 404
>( 10 / 706 ) Exporting /sites/mysite/material/press/index.html ... 404
>
>in Tomcat's localhost_access_log I see (for the above):
>
>127.0.0.1 - - [07/Jun/2018:17:24:06 +0200] "GET
>/opencms/handle404/opencms/export/sites/mysite/material/press/index.html
>HTTP/1.1" 404 -
>127.0.0.1 - - [07/Jun/2018:17:24:06 +0200] "GET
>/opencms/handle404/opencms/export/sites/mysite/material/press/
>HTTP/1.1" 404 -
>the "regular" urls are
>localhost:8080/material/press/
>localhost:8080/material/press/index.html
>
>but I assume that the difference here is somehow related to the static
>export logic.
>
>2. the exported files are first created in webapps/opencms/temp and
>when finished moved to folder "backup2" (! instead of "export", where I
>suspect them to go)
>
>
>
>And it doesn't seem to make any difference what is selected in
>Site/Project.
>
>
>
>My setup is OpenCms 10.5.3 on Tomcat 8 (standalone), both with the
>deafult settings from the installation.
>
>The excerpt of the opencms-importexport.xml is below.
>
>
>
>Would be really great if someone can point me in the right direction.
>
>
>
>Best regards,
>
>Gerd
>
>
>
>
>
>opencms-importexport.xml:
>
><staticexport enabled="true">
><staticexporthandler>org.opencms.staticexport.CmsOnDemandStaticExportHandler</staticexporthandler>
><linksubstitutionhandler>org.opencms.staticexport.CmsDefaultLinkSubstitutionHandler</linksubstitutionhandler>
><exportpath>export</exportpath>
><exportworkpath>temp</exportworkpath>
><exportbackups>2</exportbackups>
><defaultpropertyvalue>false</defaultpropertyvalue>
><defaultsuffixes>
><suffix key=".jpg" />
><suffix key=".gif" />
><suffix key=".png" />
><suffix key=".doc" />
><suffix key=".xls" />
><suffix key=".ppt" />
><suffix key=".docx" />
><suffix key=".xlsx" />
><suffix key=".pptx" />
><suffix key=".pdf" />
><suffix key=".txt" />
><suffix key=".css" />
><suffix key=".js" />
><suffix key=".zip" />
><suffix key=".swf" />
></defaultsuffixes>
><rendersettings>
><rfs-prefix>${CONTEXT_NAME}/export</rfs-prefix>
><vfs-prefix>${CONTEXT_NAME}</vfs-prefix>
><userelativelinks>true</userelativelinks>
><exporturl>http://127.0.0.1:8080${CONTEXT_NAME}/handle404</exporturl<http://127.0.0.1:8080$%7bCONTEXT_NAME%7d/handle404%3c/exporturl>>
><plainoptimization>true</plainoptimization>
><testresource uri="/system/shared/page.dtd" />
><resourcestorender>
><regex>/sites/.*</regex>
><regex>/system/workplace/commons/style/.*</regex>
><regex>/system/galleries/.*</regex>
><regex>/system/modules/.*/resources/.*</regex>
></resourcestorender>
></rendersettings>
></staticexport>
>
>
>
>Gerd Schrick <mail at schrick-design.de<mailto:mail at schrick-design.de>>
>hat am 15. Mai 2018 um 19:14 geschrieben:
>
>Hi Kai,
>
>the port already was set correctly.
>
>As only resources/requests to
>/sites/default/... result in a 404
>but the ones to
>/system/... work
>it looks like there's somewhere kind of a (not working) url rewrite.
>As mentioned I didn't any Tomcat (standalone) nor OCMS config changes
>that may do that.
>
>I've still no idea what's going wrong here or where/what to look for.
>
>Maybe noone out there doing a full static export out-of-the-box?
>
>Best regards,
>Gerd
>
>Am 15. Mai 2018 08:42:33 MESZ schrieb "Schliemann, Kai"
><K.Schliemann at comundus.com<mailto:K.Schliemann at comundus.com>>:
>
>Hi Gerd,
>
>a common mistake is to not set the correct Tomcat port in
>opencms-importexport.xml. So if your Tomcat rums on port 8080, please
>make sure to set that port in opencms-importexport.xml.
>
>Best regards
>
>Kai
>
>
>
>Von:
>opencms-dev-bounces at opencms.org<mailto:opencms-dev-bounces at opencms.org>
><opencms-dev-bounces at opencms.org<mailto:opencms-dev-bounces at opencms.org>>
>Im Auftrag von Gerd Schrick
>Gesendet: Dienstag, 15. Mai 2018 03:27
>An: The OpenCms mailing list
><opencms-dev at opencms.org<mailto:opencms-dev at opencms.org>>
>Betreff: Re: [opencms-dev] static export 404 on Template Resources
>
>
>
>Anyone out there to help with this?
>
>Am 6. Mai 2018 01:25:43 MESZ schrieb Gerd Schrick
><mail at schrick-design.de<mailto:mail at schrick-design.de>>:
>
>Dear List,
>
>I'm on a fresh local install of 10.5.3 in Tomcat (8.5.11) including the
>example site (Apollo Demo).
>All configs/settings are unchanged.
>
>When I do a Static Export (Database Management -> Static export)
>there's no Error/Exception shown in the output but any resource below
>/sites shows ... 404 instead of ... o.k. and (as expected) none of them
>are exported.
>
>Excerpt from the output:
>::
>( 441 / 441 ) Exporting /system/workplace/commons/style/template.css
>... o.k.
>... exporting Non-Template Resources is finished.
>Exporting Template Resources ...
>::
>( 6 / 563 ) Exporting /system/workplace/commons/style/diff.css ... o.k.
>( 7 / 563 ) Exporting
>/sites/default/tutorial/step-6-publish-your-changes/index.html ... 404
>( 8 / 563 ) Exporting
>/sites/default/tutorial/step-6-publish-your-changes/ ... 404
>::
>
>It somehow makes sense to me as I get a 404 in the browser when I
>request the reported URLs
>example: /sites/default/tutorial/step-6-publish-your-changes/index.html
>404 when:
>http://mymachine:8080/sites/default/tutorial/step-6-publish-your-changes/index.html
>404 when:
>http://mymachine:8080/opencms/sites/default/tutorial/step-6-publish-your-changes/index.html
>correct when:
>http://mymachine:8080/opencms/tutorial/step-6-publish-your-changes/index.html
>
>in opencms_importexport.xml is
><exporturl>http://mymachine:8080${CONTEXT_NAME}/handle404</exporturl<http://mymachine:8080$%7bCONTEXT_NAME%7d/handle404%3c/exporturl>>
>to omit "/handle404" (as suggested here:
>https://github.com/alkacon/opencms-core/issues/494) did not change
>anything.
>
>I already found similar/same issues reported for older versions but all
>w/o a working solution.
>
>Thanks for your helpful hints!
>Gerd
>
>
>
>
>_______________________________________________
>This mail is sent to you from the opencms-dev mailing list
>To change your list options, or to unsubscribe from the list, please
>visit
>http://lists.opencms.org/cgi-bin/mailman/listinfo/opencms-dev
>
>
>
>
>
>
>
>
>_______________________________________________
>This mail is sent to you from the opencms-dev mailing list
>To change your list options, or to unsubscribe from the list, please
>visit
>http://lists.opencms.org/cgi-bin/mailman/listinfo/opencms-dev
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://webmail.opencms.org/pipermail/opencms-dev/attachments/20180612/de3ac06c/attachment.htm>


More information about the opencms-dev mailing list