2016-03-09 49 views
0

我有一些javascript,我想運行在我正在構建的Django站點的特定頁面上。在模板我目前有: <script type='text/javascript' src='{% static "/home_page/github_repos.js" %}'></script>Django:靜態文件的路徑在生成的HTML中是錯誤的

是這樣產生的HTML是: http://localhost:8000/home_page/github_repos.js

的問題是,我在/static/home_page/的JavaScript。

如果我在路徑硬編碼爲: <script type='text/javascript' src='static/home_page/github_repos.js'></script>

,一切工作正常。

但是,我得到奇怪的行爲,我不明白:

如果在模板我設置這樣的路徑: <script type='text/javascript' src='{% static "static/home_page/github_repos.js" %}'></script>

的HTML生成具有/static/static/home_page/github_repos.js

src屬性

真的把我扔掉的部分是,如果我不使用模板標籤(如我給出的第一個示例)將/static/放在src的前面,則不會添加/static/,但是,如果我添加/static/在前面,它會被添加編輯。我需要將/static/添加到src屬性的前面,但只需要一次。

一些相關信息: 我的home_page應用解析爲'/'作爲url,因此localhost:8000/會將您引導至主頁。

我已經包含在我安裝的應用程序

最後'django.contrib.staticfiles'STATIC_URL = '/static/'

發生這個問題,因爲我home_page應用解析爲localhost:8000/根地址?

任何幫助表示讚賞。

回答

1

此問題是因爲static標記中的路徑應該是相對於到靜態目錄。從the docs

使用配置的STATICFILES_STORAGE存儲創建完整URL指定相對路徑

您使用絕對路徑。相反,您應該使用:

{% static "home_page/github_repos.js" %} 

請注意省略前導斜槓。

+0

啊,謝謝,我錯過了。 – MKreegs

相關問題