我在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',)
答案 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')})
)