Generic URLs

Webcore provide a set of basic and reusable URLs, you can include them all in your project like this:

from django.conf.urls.defaults import *
from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns('',
    (r'^admin/', include(admin.site.urls)),
    (r'',        include('yourproject.urls')),
    (r'',        include('webcore.urls')),
)

Note: Only webcore.urls.sitemap isn’t included by default.

Alternatively you can cherry pick which URLs you want to include as documented below.

Available URLs

webcore.urls.robots

Example:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'', include('yourproject.urls')),
    (r'', include('webcore.urls.robots')),
)

This will serve the webcore/templates/robots.txt which contains only this:

# www.robotstxt.org/
# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
User-agent: * User-agent: * Disallow: /admin/

You can override this template by creating a robots.txt file in your project templates folder to set your own rules.

webcore.urls.sitemap

Example:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'', include('yourproject.urls')),
    (r'', include('webcore.urls.sitemap')),
)

This will serve the following dummy site-map file which you should override using yourproject/templates/site-map.xml.:

<?xml version="1.0" encoding="UTF-8"?>
<urlset
    xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
    http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
    <url>
      <loc>http://www.example.com/</loc>
      <priority>1.00</priority>
    </url>
</urlset>

webcore.urls.favicon

Lots of browsers have an annoying tendency to request /favicon.ico even if the HTML doesn’t specify it explicitly. This URL will redirect those requests to {{ MEDIA_URL }}img/favicon.ico:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'', include('yourproject.urls')),
    (r'', include('webcore.urls.favicon')),
)

webcore.urls.ifdev

This URL will serve media file with the dev server if DEV = True in the settings.py file.:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'', include('yourproject.urls')),
    (r'', include('webcore.urls.favicon')),
)

To better understand what’s happening, here’s the code of ifdev.py:

if settings.DEV:
    urlpatterns = patterns('',
        (r'^media/(.*)$', 'django.views.static.serve', {
            'document_root': settings.MEDIA_ROOT,
            'show_indexes': True}),
    )
else:
    urlpatterns = patterns('',)