我在我的模板中使用{{STATIC_URL}}
(为简化起见,我们将以主页为例)。所以,我有一个名为“home_base.html”的父模板,在这种情况下使用标签:
<script src="{{STATIC_URL}}js/plugins.js">
<img src={{STATIC_URL}}img/blah.jpg>
在我的urls.py文件中,我有两个网址,指向相同的视图:
url(r'^home/$', 'homepage.views.HomeView'),
url(r'^home/x/$', 'homepage.views.HomeView', {'x': '3'}),
当我访问mysite.com/home时,一切正常。但是,当我访问mysite.com/home/x时,找不到应用程序静态文件夹中的任何文件。对于模板中的每个静态文件,我都会收到类似这样的错误:
[30/Jan/2013 13:04:20] "GET /homepage/static/js/plugins_functions.js HTTP/1.1" 404 7325
[30/Jan/2013 13:04:20] "GET /homepage/static/js/backb_global.js HTTP/1.1" 404 7310
好像它在开头添加/homepage/
...通常会得到/static/js...
我发现它与添加到网址路径的内容有关,因为如果我将网址更改为这样,那么一切都运行良好:
url(r'^home/$', 'homepage.views.HomeView'),
url(r'^x/$', 'homepage.views.HomeView', {'x': '3'}),
当我向网址添加斜杠时,为什么一切都搞砸了?我该如何解决?我真的很想在家里添加这样的内容:url(r'^home/add/stuff/to/address/$'
,并且仍然可以使所有{{STATIC_URL}}
代码生效。
请记住,我使用此父模板作为许多其他模板的基础,因此我可以添加到网址的路径,并将{{STATIC_URL}}
标记保留在home_base中对我很重要.html文件。
答案 0 :(得分:0)
尝试使用
转义字符串变量{{STATIC_URL|safe}}
答案 1 :(得分:0)
您是否检查了https://docs.djangoproject.com/en/dev/howto/static-files/所说的内容:
如果{{STATIC_URL}}在模板中不起作用,则在渲染模板时可能没有使用RequestContext。
和
确保'django.core.context_processors.static'在您的TEMPLATE_CONTEXT_PROCESSORS中。