跳转到主要内容

Django版的Marshall Yount的rack-modernizr(https://github.com/marshally/rack-modernizr/)

项目描述

Modernizr 是一个javascript实用工具,用于调查用户的网络浏览器以确定其功能。不幸的是,所有这些美味的数据仅限于客户端。

django-modernizr 是一个Django中间件,它包含Modernizr javascript并将Modernizr的输出放入第一次页面请求的cookie或会话中。

安装

  1. modernizr 目录添加到您的Python路径中。

  2. 将以下中间件添加到您的项目 settings.py 文件中

    'modernizr.middleware.ModenizrMiddleware',

    MIDDLEWARE_CLASSES 的顺序很重要:Modernizr 中间件必须在任何其他对响应内容进行编码的中间件(如GZipMiddleware)之后。

    注意:当响应的MIME类型为 text/htmlapplication/xhtml+xml 并包含关闭的 </body> 标签时,modernizr 代码才会显示。

    注意:请注意中间件顺序和其他可能截获请求并返回响应的中间件。例如,将 modernizr 中间件放在 Flatpage 中间件之后,意味着 modernizr 不会在 flatpages 上显示。

  3. modernizr 添加到您的 INSTALLED_APPS 设置中,以便Django可以找到与 modernizr 相关的模板文件。

    或者,将 modernizr 模板路径('path/to/modernizr/templates')添加到您的 TEMPLATE_DIRS 设置中。

配置

Django Modernizr 有几个可以在 settings.py 中设置的设置(所有都是可选的)

  1. MODERNIZR_STORAGE:设置为 ‘cookie’ 或 ‘session’

  2. 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 的路径。默认为 ‘/’。

  3. 会话设置

    • MODERNIZR_SESSION_KEY:用于存储的会话密钥。默认为 ‘modernizr’。

  4. 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

项目详情


支持者