0

我在 django 上做了一个小应用程序,它正在使用模板。每个模板都使用静态文件,例如 css、js 和图像。所有这些文件与模板位于同一目录中。

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',)
4

3 回答 3

0

这是我通过 Django 开发服务器提供静态文件的方式。

在 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')})
)
于 2012-07-19T20:18:58.823 回答
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__)) 
于 2012-07-19T14:35:18.293 回答
0

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

于 2012-07-19T14:34:15.353 回答