[英]Django static files when locally developing - how to serve absolutely?
這應該是非常簡單的,但是不知何故它使我整個上午都陷入困境。 我正在使用django調試服務器在本地開發,並具有以下文件結構:
/project/ (django project)
/static/ (static files)
在settings.py中,MEDIA_ROOT和MEDIA_URL都設置為'/ static /',我在urls.py中使用它
url(r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root': '../static'}),
在我的模板中,需要從靜態目錄作為服務器的文件配置如下:
<link rel="stylesheet" href="{{ STATIC_URL }}css/style.css">
所有功能均應正常運作-javascript / css / images均可以從hompage中正常投放。 但是,當我轉到子目錄(例如http://127.0.0.1:8000/news/)時,所有鏈接都斷開了。
我嘗試使用各種os.import選項來使其正確執行相對鏈接,但是還沒有運氣。 有沒有一種方法可以強迫它相對於基本URL,或者將其硬編碼到我的文件系統中?
任何幫助都將是驚人的!
我也遇到了同樣的問題,我通過從STATIC_URL ='/ static /'中刪除第一個斜杠並將其設置為STATIC_URL ='static /'來解決了該問題,就像上面的philipbe一樣。 奇怪的是,'/ media /'同時適用於MEDIA_URL(而'media /'則中斷了布局)。
無論如何-只需將STATIC_URL更改為等於'static /',並且不使用斜杠,就可以解決它。
在urls.py文件的這一行中, '../static'
應更改為絕對目錄。 嘗試更改它,看看會發生什么。
您的檔案:
url(r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root': '../static'}),
應該看起來像:
url(r'^(?P<path>.*)$', 'django.views.static.serve', {'document_root': '/full/path/to/static'}),
舉個例子,我的設置略有不同,但是我仍然使用完整路徑。
這是我的設置方法:在settings.py
STATIC_DOC_ROOT = '/Users/kylewpppd/Projects/Django/kl2011/assets/'
並在urls.py
:
(r'^assets/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.STATIC_DOC_ROOT, 'show_indexes':True}),
我正在從'localhost:8000/assets/'
提供我的靜態文件。
轉到子目錄時,鏈接如何斷開? 您能否進一步解釋一下。
django 1.3是否支持靜態媒體某種奇怪的相對URL路由?
如果可以從首頁而不是其他網站上投放廣告,那聽起來像不是您的STATIC_URL
是相對位置嗎?
您的STATIC_URL
是什么? 它應該是絕對的,並以斜杠開頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.