簡體   English   中英

Django:擴展網址路徑時,{{STATIC_URL}}標簽不起作用

[英]Django: {{STATIC_URL}} tag not working when url path is extended

我在模板的所有位置都使用{{STATIC_URL}} (為簡化{{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路徑中添加內容有關 ,因為如果我將url更改為如下所示,則一切運行正常:

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

當我在網址中添加斜杠時,為什么一切都搞砸了? 我該如何解決? 我真的很{{STATIC_URL}}這樣向家里添加東西: url(r'^home/add/stuff/to/address/$' ,並且仍然可以使所有{{STATIC_URL}}標簽正常工作。

請記住,我將此父模板用作許多其他模板的基礎,因此對我來說很重要的一點是,我可以添加到url的路徑,並將{{STATIC_URL}}標記保留在home_base.html文件中。

嘗試使用轉義字符串變量

{{STATIC_URL|safe}}

您是否檢查過https://docs.djangoproject.com/en/dev/howto/static-files/ ,其中顯示:

如果{{STATIC_URL}}在您的模板中不起作用,則渲染模板時可能未使用RequestContext。

和:

確保“ django.core.context_processors.static”在您的TEMPLATE_CONTEXT_PROCESSORS中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM