Confluence plugins may define downloadable resources. If your plugin requires Confluence serve additional static files such as images, Javascript or CSS, you will need to use downloadable plugin resources to make them available.
Defining a Single Downloadable Resource
Downloadable resources are configured to map a name
of some downloadable file to its location
within the plugin jar-file.
<atlassian-plugin name='IM Presence Macros' key='confluence.extra.impresence'>
<plugin-info>
<description>Macros to show online status for popular Instant Messaging services.</description>
<vendor name="Atlassian Software Systems" url="http://www.atlassian.com"/>
<version>0.1</version>
</plugin-info>
<macro name='aim' class='com.atlassian.confluence.extra.impresence.AIMPresenceMacro' key='aim'>
<description>Displays an AIM status graphic.</description>
<resource type="download" name="aimon.gif" location="templates/extra/impresence/aimon.gif">
<param name="content-type" value="image/gif"/>
</resource>
</macro>
<resource type="download" name="aimoff.gif" location="templates/extra/impresence/aimoff.gif"/>
</atlassian-plugin>
- Resources can be downloaded either within a plugin module, or as a resource of the entire plugin.
- Resources are always looked up relative to a plugin module (see below). If a resource can not be found in the plugin module, it will then be looked for in the plugin itself.
- Each resource must be of
type="download"
- The
name
of the resource is how it will be referenced from within the application
- The
location
of the resource is where it appears within the plugin itself
- An optional
content-type
parameter can be used to supply the file's MIME type
- In the absence of a
content-type
, the application will attempt to guess the file's type from its file extension. For common file extensions, an explicit content-type is not necessary.
Defining a Directory of Downloadable Resources
If your plugin requires a lot of resources, you may wish to expose a directory of files as resources, rather than writing definitions for each individual file.
<resource type="download" name="icons/" location="templates/extra/impresence/icons/"/>
- The
name
and location
must both have trailing slashes
- Subdirectories are also exposed, so in the example above,
icons/small/mail.gif
will be mapped to the resource templates/extra/impresence/icons/small/mail.gif
Referring to Downloadable Resources
The URL for a downloadable resource is as follows:
{server root}/download/resources/{plugin key}:{module key}/{resource name
}
例:
http://confluence.example.com/download/resources/confluence.extra.impresence:aim/aimon.gif
In a velocity template, you should use the $req.contextPath
property to ensure that your resources are always relative to the URL of the Confluence server:
$req.contextPath/download/resources/confluence.extra.impresence:aim/aimon.gif