afs*_*hin 7 django django-templates
我需要在我的Django项目中服务静态文件.
我想将它们放在/ static目录中,并能够在我的模板中引用它们.
我一直在阅读文档中的"管理静态文件",我很困惑.我按照说明操作但是无法让它工作.
1)我已将静态文件放在项目中每个应用程序的/ static下.
2)django.contrib.staticfiles包含在我的INSTALLED_APPS下.
我在设置中设置了以下变量:
STATIC_ROOT = '/static/'
STATIC_URL = '/static/'
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我有以下几行:
<script type="text/javascript" src={{ STATIC_URL }}/a_ajax.js></script>
Run Code Online (Sandbox Code Playgroud)
但是,当我调出页面并查看源代码时,该行是:
<script type="text/javascript" src=/a_ajax.js></script>
Run Code Online (Sandbox Code Playgroud)
似乎没有任何内容传递给模板.
我究竟做错了什么?
考虑到您使用的是Django 1.4或更高版本,以下是我的解释:
在Django 1.3中,静态文件与上传的文件(媒体)分开,现在,它们有自己的家.
要在开发环境中提供静态文件(css,js,images等),您需要:
static子目录中django.contrib.staticfiles.finders.AppDirectoriesFinder你的settings.py(这是默认行为)目录结构将是:
__| project_root/
____| your_app/
______| static/
________| test.css
________| some.js
Run Code Online (Sandbox Code Playgroud)
所以请求http://localhost:8000/static/test.css将被路由到your_app/static/test.css.
请注意,在STATIC_ROOT进入需要运行的生产环境之前,无需更改设置./manage.py collectstatic.
该collectstatic命令将从应用程序的static子目录中收集文件,并将它们全部放在一个独特的位置(定义的目录STATIC_ROOT)
如果要在生产中部署项目,请参阅./manage.py collectstatic文档.
包含'django.core.context_processors.static'在你的TEMPLATE_CONTEXT_PROCESSORSvar 中settings.py。
请参阅文档:引用模板中的静态文件
并且在视图中,使用RequestContext对象而不是Context对象。
def view1(request):
...
context = RequestContext(...
return render_to_response( ... , context )
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12875 次 |
| 最近记录: |