Documentation for Confluence 2.5.4 - 2.5.8.
Documentation for [Confluence Cloud] and the latest Confluence Server is available too.

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.

Due to a bug in Confluence versions 1.4 through 1.4.2, downloadable plugin resources only function for plugins that have been deployed by copying them into confluence/WEB-INF/lib. Plugins that have been uploaded dynamically through the web interface, or copied into confluence.home/plugins will not be able to serve resources. This bug is fixed for Confluence 1.4.3.

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

  • ラベルなし