簡體   English   中英

本地開發時的Django靜態文件-如何提供絕對服務?

[英]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.

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