OpenCms Static-Export Advanced Features
After the OpenCms 6.0.0 Release, several improvements
have been made to the Static Export feature:
- Real File System Rules
(general improvement)
Until now, you could specify a set of settings for
the static export, like <rfs-prefix>, <exportpath> and <userelativelinks>, which
were global settings and you had no possibility to have different
settings for different resource sets. The idea of the rfs-rules is to
complement this global settings, being able to specify different settings for
different resource sets. - Export Rules
(AfterPublish/Full static
export specific new
feature)
An export rule let you specify a set of resources to export if a modified
resource matches a set of rules. And the main idea behind it, is to optimize
the needed time used to do an static export after publish. Until now, every
time a resource has been published, OpenCms mades a static export of
all resources in the vfs! (at least all resources matched by the
<regex> patterns in the
<resourcetorender> node) since
there was no possibility to know the dependencies of a file. So, this new
feature lets OpenCms know which are the dependencies of a set of
resources. - Tutorial
Learn how to begin using these new features.
This new features as also all the other
configuration settings for the Static Export should be given in the ${CONTEXT_NAME}/WEB-INF/config/opencms-importexport.xml
configuration file.
Some general issues you have to be aware of when static exporting a site:
- No form of dinamic interaction with the user can
be static exported, like contact forms or search functions. If need such functionallity use an hibrid solution with the On-Demand export feature, how to use this feature is detailed in the com.alkacon.documentation.howto_httpd_tomcat_modproxy documentation module.
- Dinamic pages and resources, i.e. JSP pages with
parameters for generating images, or style sheets, or what ever, can be
statically exported using the CmsJspActionElement.link(String)
method or the <cms:link> tag given
to it the whole path with all parameters, when referencing it.
For instance:
new CmsJspActionElement.link(pageContext,
request,response).link("/system/modules/mytemplate/style.css?param1=value1¶m2=value2")
And things like: new CmsJspActionElement.link(pageContext,
request, response).link("/system/modules/mytemplate/style.css")
+ "?param1=value1¶m2=value2"
will not work, because the parameters are not encoded.
- You will also have troubles when using javascript to display pages,
because you have no access to the CmsJspActionElement.link(String) method, so do
not do that.
- Be also sure the Export user had at least permission to read the resources to export.
- Do not forget to configure your export url correctly, it should be something like
http://127.0.0.1:8080/${CONTEXT_NAME}/handle404.
- You can also mark a resource as internal so it will not be exported, this can be done in the Secure/Export dialog.
- In apache is important to configure the DirectoryIndex option so that the index_export.html files
are also view as default directory content.
|