Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
Five New Optimizely Certifications are Here! Validate your expertise and advance your career with our latest certification exams. Click here to find out more
Configure modules in the web.config file to let Episerver associate a virtual path to an assembly containing gadgets and other plug-ins. The following example defines a module of the QuickChat.dll assembly and associates it with the virtual path /public/QuickChat.
Example:
<episerver.shell>
<publicModules rootPath="~/modules/" autoDiscovery="Minimal">
<add name="QuickChat">
<assemblies>
<add assembly="QuickChat" />
</assemblies>
</add>
</publicModules>
</episerver.shell>
The following example configures a module called PublicTemplates. The module’s location on disk is the root of the application (~/). Relative references to client resources and menu items are based on this URL. Furthermore, the module is mapped to an assembly, EPiServer.Templates.Public. Controllers in this assembly are routed through the path format /modules/PublicTemplates/{controller}/{action}. This route is set up by the shell initialization module.
Example (relocated resource path):
<episerver.shell>
<publicModules rootPath="~/modules/" autoDiscovery="Minimal">
<add name="PublicTemplates" resourcePath="~/">
<assemblies>
<add assembly="EPiServer.Templates.Public" />
</assemblies>
</add>
</publicModules>
</episerver.shell>
These elements contain collections of shell modules.
Attributes:
The publicModules and protectedModules elements themselves in the web.config contain a collection of registered modules. These modules define assemblies and virtual paths. By default, a module is expected to be found in a folder with the same name as the module itself. This folder should be located in the configured rootPath (as configured per public and protected modules).
Attributes:
Elements:
Example (web.config):
<add name="ShellExtras"
resourcePath="~/Somewhere/Else/Extras" clientResourcePath="~/Somewhere/Else/Entirely/Extras">
<assemblies>
<add assembly=" EPiServer.Shell.Extras" />
</assemblies>
</add>
Each module has a manifest file (module.config) in the root directory of the module where you can specify further module-specific settings.
You can specify the relative path to client resources in the module folder using the optional clientResourceRelativePath attribute of the module node in the module manifest file (module.config). The module client resource path is equal to the resource base path when clientResourceRelativePath attribute is not defined or the value is an empty string. Otherwise the system combines the module resource base path and the relative path specified in clientResourceRelativePath attribute. The resulting value is used as the module client resource path if it is a valid absolute path.
You can use this feature to implement versioning to avoid client-side caching issues without having to change all references to the resource files individually.
<?xml version="1.0" encoding="utf-8"?>
<module clientResourceRelativePath="1.5.0" >
<!-- ... -->
<clientResources>
<add location="myScript" path="ClientResources/script.js" resourceType="Script" />
<add location="myStyles" path="ClientResources/styles.css" resourceType="Style" />
</clientResources>
<!-- ... -->
</module>
Resource base path: ~/modules/SampleModule/
Client resource path: ~/modules/SampleModule/1.5.0/
Last updated: Nov 25, 2015