Reusable django app to handle /favicon.ico and robots.txt for your site
Project description
A reusable app to add favicon.ico, robots.txt, SEO tricks and 404/500 error pages handling for your site.
Installation
Install “django-site-basics” using pip or easy_install:
pip install django-site-basics
Add “favicon” to your INSTALLED_APPS in settings.py:
INSTALLED_APPS = ( ... 'site_basics', )
Add site_basics URL patterns and handlers (if you want to use them) to urls.py:
handler404 = 'site_basics.views.page_404' handler500 = 'site_basics.views.page_500' urlpatterns = patterns('', ... url(r'^', include('site_basics.urls')), )
Replace Django’s LocaleMiddleware with UpdatedLocaleMiddleware in your MIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES = ( ... #'django.middleware.locale.LocaleMiddleware', # disabled in favor of UpdatedLocaleMiddleware 'site_basics.middleware.UpdatedLocaleMiddleware', ... )
Usage
Favicon
Put favicon.ico into your STATIC_ROOT. and you good to go, /favicon.ico will automatically redirect to /static/favicon.ico if your STATIC_URL = ‘/static/’.
Otherwise you can set a custom path to your favicon using FAVICON_PATH setting. For example:
FAVICON_PATH = STATIC_URL + 'images/favicon.png'
Robots.txt
robots.txt will be working out-of-the-box but if you need to customize it put custom robots.txt file into your templates directory. If you need to change template location use ROBOTS_TEMPLATE setting (robots.txt by default). Example:
ROBOTS_TEMPLATE = 'myfolder/robots.txt'
UpdatedLocaleMiddleware
This is a fix of Django i18n_urlpatterns and SEO problem described in Yawd’s article.
It changes LocaleMiddleware i18n redirects from Temporary (302) to Permanent (301) which prevents search engines from indexing and ranking double links for the same page.
To activate it replace Django’s LocaleMiddleware with UpdatedLocaleMiddleware in your MIDDLEWARE_CLASSES:
MIDDLEWARE_CLASSES = ( ... #'django.middleware.locale.LocaleMiddleware', # disabled in favor of UpdatedLocaleMiddleware 'site_basics.middleware.UpdatedLocaleMiddleware', ... )
Error pages
Error pages work out-of-the-box providing you fancy themes from Annanta and Robotik.
In development you can test these views by opening /test_page_404/ and /test_page_500/.
Annanta is default but you can switch to Robotik using setting:
ERROR_PAGE_THEME = 'robotik' # default is 'annanta'
You can also set a color:
ERROR_PAGE_THEME_COLOR = 'blue'
Available colors:
blue
green
gray (Robotik only)
grey (Annanta only)
red (Annanta only)
brown (Annanta only)
And if you’re using Django CMS you can show links to your root pages by setting:
ERROR_PAGE_CMS_LINKS = True
More configuration options below…
Configuration
ROBOTS_TEMPLATE
Sets a template for robots.txt handler (‘robots.txt’ by default). Example:
ROBOTS_TEMPLATE = 'myforlder/myrobotstemplate.txt'
ERROR_PAGE_THEME
Sets a theme for error pages (‘annanta’ or ‘robotik’, ‘annanta’ by default). Example:
ERROR_PAGE_THEME = 'robotik'
ERROR_PAGE_THEME_COLOR
Sets a color for error pages theme (‘blue’ by default). Example:
ERROR_PAGE_THEME_COLOR = 'green'
ERROR_404_PAGE_TEMPLATE
404 template (‘%s/404.html’ % ERROR_PAGE_THEME by default). Example:
ERROR_404_PAGE_TEMPLATE = 'myforlder/404.html'
ERROR_500_PAGE_TEMPLATE
500 template (‘%s/500.html’ % ERROR_PAGE_THEME by default). Example:
ERROR_404_PAGE_TEMPLATE = 'myforlder/500.html'
ERROR_PAGE_LOGO_URL
Set it if you want to display your logo on the error pages (None by default). Example:
ERROR_PAGE_LOGO_URL = '%simages/logo.png' % settings.STATIC_URL
ERROR_PAGE_CMS_LINKS
Allows you to show your root menu links on the error pages if you’re using Django CMS (False by default). Example:
ERROR_PAGE_CMS_LINKS = True
ERROR_PAGE_SEARCH_ACTION
Allows you to setup a search form on your error pages (None by default).
Additional settings:
ERROR_PAGE_SEARCH_METHOD (‘GET’ by default)
ERROR_PAGE_SEARCH_PARAM (‘q’ by default)
Example:
ERROR_PAGE_SEARCH_ACTION = '/search/' ERROR_PAGE_SEARCH_METHOD = 'POST' ERROR_PAGE_SEARCH_PARAM = 'query'
Running the Tests
You can run the tests with via:
python setup.py test
or:
python runtests.py
TODO
Add more templates
Add locales and translations
Google Analytics
Sitemaps support
Credits
Developed and maintained under supervision of Evgeny Demchenko
Uses django-favicon for favicon.ico handling
Uses django-robots-txt for robots.txt handling
Uses Robotik 404 error page template
Uses Annanta 404 error page template
Uses GoSocial icons pack
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django_site_basics-0.2.2-py2.7.egg
Algorithm | Hash digest | |
---|---|---|
SHA256 | 85223bd8589a6eccafbec93a20af0a1740b9c4ccc32f4331b890f5daad8a6ca4 |
|
MD5 | 74f86b8cbe6a27461fab749946187810 |
|
BLAKE2b-256 | cf0a7d99dc65c8d1c62ee226a72479d38c1d5662d516fbeacd62592115174f70 |