Django版的Marshall Yount的rack-modernizr(https://github.com/marshally/rack-modernizr/)
项目描述
Modernizr 是一个javascript实用工具,用于调查用户的网络浏览器以确定其功能。不幸的是,所有这些美味的数据仅限于客户端。
django-modernizr 是一个Django中间件,它包含Modernizr javascript并将Modernizr的输出放入第一次页面请求的cookie或会话中。
安装
将 modernizr 目录添加到您的Python路径中。
将以下中间件添加到您的项目 settings.py 文件中
'modernizr.middleware.ModenizrMiddleware',
MIDDLEWARE_CLASSES 的顺序很重要:Modernizr 中间件必须在任何其他对响应内容进行编码的中间件(如GZipMiddleware)之后。
注意:当响应的MIME类型为 text/html 或 application/xhtml+xml 并包含关闭的 </body> 标签时,modernizr 代码才会显示。
注意:请注意中间件顺序和其他可能截获请求并返回响应的中间件。例如,将 modernizr 中间件放在 Flatpage 中间件之后,意味着 modernizr 不会在 flatpages 上显示。
将 modernizr 添加到您的 INSTALLED_APPS 设置中,以便Django可以找到与 modernizr 相关的模板文件。
或者,将 modernizr 模板路径('path/to/modernizr/templates')添加到您的 TEMPLATE_DIRS 设置中。
配置
Django Modernizr 有几个可以在 settings.py 中设置的设置(所有都是可选的)
MODERNIZR_STORAGE:设置为 ‘cookie’ 或 ‘session’
Cookie 设置(与 django.contrib.sessions 的 Cookie 设置相同)
MODERNIZR_COOKIE_NAME:Cookie 的名称。默认为 ‘modernizr’。
MODERNIZR_COOKIE_AGE:Cookie 的过期时间。默认为 2 周。
MODERNIZR_COOKIE_DOMAIN:颁发 Cookie 的域名。默认为 None。
MODERNIZR_COOKIE_SECURE:是否安全地提供 Cookie。默认为 False。
MODERNIZR_COOKIE_PATH:颁发 Cookie 的路径。默认为 ‘/’。
会话设置
MODERNIZR_SESSION_KEY:用于存储的会话密钥。默认为 ‘modernizr’。
Modernizr 渲染选项
MODERNIZR_JS_URL:modernizr.js 的 URL。默认为 http://cachedcommons.org/cache/modernizr/1.5.0/javascripts/modernizr-min.js。
MODERNIZR_SENTINEL_IMAGE_URL:包含 Modernizr 数据的哨兵图像的 URL。默认为 ‘/django-modernizr-endpoint.gif’。
MODERNIZR_INCLUDE_TAG:将在这种类型的关闭标签处定位,并在其之前渲染和插入 Modernizr 模板。默认为 ‘body’。
感谢
Django Modernizr 是 Marshall Yount 的 rack-modernizr 的移植。
部分代码和文档样式取自 Rob Hudson 的 django-debug-toolbar。