0

{{STATIC_URL}}在我的模板中到处使用(为了简单起见,我们将使用主页作为示例)。因此,我有一个名为“home_base.html”的父模板,它在以下情况下使用该标签:

<script src="{{STATIC_URL}}js/plugins.js">
<img src={{STATIC_URL}}img/blah.jpg>

在我的 urls.py 文件中,我有两个指向同一个视图的url :

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 path 添加东西有关,因为如果我将 url 更改为如下所示,一切都会完美运行:

url(r'^home/$', 'homepage.views.HomeView'),
url(r'^x/$', 'homepage.views.HomeView', {'x': '3'}),

为什么当我在 url 中添加斜杠时一切都搞砸了?我该如何解决?我真的很想像这样将东西添加到家中:url(r'^home/add/stuff/to/address/$',并且所有{{STATIC_URL}}标签仍然有效。

请记住,我将此父模板用作许多其他模板的基础,因此我可以添加到 url 的路径并将{{STATIC_URL}}标签保留在 home_base.html 文件中,这对我来说很重要。

4

2 回答 2

0

尝试转义字符串变量

{{STATIC_URL|safe}}
于 2013-01-30T22:28:11.193 回答
0

你检查了https://docs.djangoproject.com/en/dev/howto/static-files/它说:

如果 {{ STATIC_URL }} 在您的模板中不起作用,您可能在渲染模板时没有使用 RequestContext。

和:

确保 'django.core.context_processors.static' 在您的 TEMPLATE_CONTEXT_PROCESSORS 中。

于 2013-01-30T22:29:40.620 回答