django和静态css加上js文件

时间:2012-07-19 14:03:41

标签: django django-templates

我在django上做了一个小应用,它正在使用模板。每个tempalate都使用静态文件,如css,js和images。与模板位于同一目录中的所有文件。

template
    main.html
    support.html
    about.html
    ...

    css
        reset.css
        style.css
        ...

    img
    js
        jquery.js
        main.js
        ...

是否有配置django开发服务器来加载这些文件而不编辑html模板文件?

我正在接收

http://127.0.0.1:8000/face/css/960_24_col.css   404 NOT FOUND    127.0.0.1:8000

settings.py中的这一变化对我没有帮助

STATIC_ROOT = 'C:/Projects/site/website/face/static/'
STATIC_URL = '/static/'
STATICFILES_DIRS = ('C:/Projects/site/website/face/static',)

3 个答案:

答案 0 :(得分:0)

您可能想要使用contrib app staticfiles。在doc页面的底部,您将看到如何在开发服务器上使用它。

答案 1 :(得分:0)

STATIC_URL已定义为'/ static /',因此所有静态文件都将从/ static提供。

换句话说/face/css/960_24_col.css不正确。

这应该是/static/face/css/960_24_col.css,假设face目录位于C:/ Projects / site / website / face / static / face。

我可能还建议您不要在设置文件中使用绝对路径。要找出项目根目录的绝对路径,请使用以下内容:

PROJECT_DIR = os.path.abspath(os.path.dirname(__file__)) 

答案 2 :(得分:0)

以下是我通过Django dev服务器提供静态文件的方法。

在urls.py中定义:

from os import getcwd, path as ospath
...
urlpatterns += patterns('',
    (r'css/([a-zA-Z0-9_.]+.css)$', 'django.views.static.serve', {'document_root': ospath.join(getcwd(), 'css')}),
    (r'images/(.*)$', 'django.views.static.serve', {'document_root': ospath.join(getcwd(), 'images')}),
    (r'js/([a-zA-Z0-9_.]+.js)$', 'django.views.static.serve', {'document_root': ospath.join(getcwd(), 'js')})
)