Skip to main content

Alternate hostname CDN support for Plone

Project description

<nav class="contents" id="table-of-contents" role="doc-toc">

Table of Contents


CDN Support for Plone: Altenate Hostname


This package provides support for an alternate hostname CDN config for Plone sites.

This provider allows you to designate an alternate hostname to serve skin resources for your portal.

A very basic example would be to add as an alternate hostname – using same port number as your zope instance – during development, thus enabling resources to be downloaded from while content will be served from localhost.



To enable this product,on a buildout based installation:

  1. Edit your buildout.cfg and add collective.cdn.alternatehostname to the list of eggs to install

    eggs =

If another package depends on the collective.cdn.alternatehostname egg or includes its zcml directly you do not need to specify anything in the buildout configuration: buildout will detect this automatically.

After updating the configuration you need to run the ‘’bin/buildout’’, which will take care of updating your system.

Go to the ‘Site Setup’ page in the Plone interface and click on the ‘Add/Remove Products’ link.

Choose the CDN Support for Plone (check its checkbox) and click the ‘Install’ button.

Uninstall – This can be done from the same management screen, but only if you installed it from the quick installer.

Note: You may have to empty your browser cache and save your resource registries in order to see the effects of the product installation.


CDN settings

After installing this package, go to the ‘Site Setup’ page in the Plone interface and click on the ‘CDN Configuration’ link.

In this page you can choose which registries will use the CDN settings by clicking the respective checkboxes.

Choose the AlternateHostname provider, add a new hostname, port number and additional path –if needed – then save the settings.

How it works

Using the hostname provided in the settings page, we simply replace our Plone site root’s url with the provided information.

For example, using as the alternate hostname with port number 80 and an empty path, the link to simplesconsultoria_site-cachekey0549.css file would change from:


If we inform a port number different from 80, it will be appended to the hostname, so with a port number of 8080, the above example would return:

The same will happen if we inform a path in our settings. Using ‘simples’ as our path, the first example would return:

Advanced Usage

Using a different path offers you the possibility of creating a simple caching/cdn server for multiple sites. As an example we will consider we have two Plone sites, and, and we setup as an alternate hostname in both Plone sites.

In order to differentiate one site from the other we will set different paths in each of them:

  • simples in

  • simplesnet in

So each site will have the following settings:

    • Provider: AlternateHostname

    • Hostname:

    • Port: 80

    • Path: simples

    • Provider: AlternateHostname

    • Hostname:

    • Port: 80

    • Path: simplesnet

And a link to a file portal_css/beyondskins_simples/simplesconsultoria_site-cachekey0549.css, would return for

And for

So, our frontend server must rewrite calls to simples/ to server and calls to simplesnet/ to the server.


Development of this product was sponsored by Simples Consultoria.


  • Simples Consultoria (products at simplesconsultoria dot com dot br) - Implementation


0.5 (2011-02-21)

  • Implementation of an alternate hostname provider [erico_andrei]

  • Initial release [erico_andrei]

Project details

Release history Release notifications | RSS feed

This version


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution (24.6 kB view hashes)

Uploaded source

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page