我試圖獲取一個背景圖像來顯示在Amazon S3上託管靜態文件。在我base.html文件下面的代碼工作得很好,並發現位於我的S3存儲桶的CSS文件:Django靜態文件相對引用Amazon S3
<link rel="stylesheet" href="{{ STATIC_URL }}css/stylesheet.css" type="text/css" />
我的問題是,我的CSS文件中,以下行似乎並沒有找到圖片:
background-image: url("{{ STATIC_URL }}img/GreenBackground.jpg") no-repeat center center fixed;
我的亞馬遜桶看起來像
/newdjangoapp
--/admin
--/css
----/stylesheet.css
--/img
----/GreenBackground.jpg
我曾嘗試加入周圍的IMG和css目錄額外的「靜態」目錄和文件路徑更新此,我有特里d以下代碼:
background-image: url("{{ STATIC_URL }}../img/GreenBackground.jpg") no-repeat center center fixed;
甚至
background-image: url("../img/GreenBackground.jpg") no-repeat center center fixed;
我的靜態URL設置如下:
STATIC_URL = 'http://s3.amazonaws.com/' + AWS_STORAGE_BUCKET_NAME +'/'
和靜態目錄...
STATIC_ROOT = os.path.join(PROJECT_DIR,'')
STATICFILES_DIRS = (
os.path.join(PROJECT_DIR, 'static/'),
)
任何幫助這個問題得到很大的解決不勝感激!
你應該在CSS文件中使用相對路徑,就像你最後一個例子:'background-image:url(「 ../img/GreenBackground.jpg「)no-repeat center center fixed;'。當你查看頁面的源代碼時指定的相對路徑是什麼? – 2013-02-09 01:46:07
我認爲你不必使用{{STATIC_URL }}在你的CSS文件只是點(s)只是爲了找到圖像的確切位置 – catherine 2013-02-09 06:48:03
@DanHoerst當我查看源代碼時,它顯示了CSS文件的鏈接,該文件又顯示給我下面一行(參考圖片): 'background-image:url(「../ img/GreenBackground.jpg」)no-repeat center center fixed;' 它應該顯示一個到CSS中圖像的完整鏈接嗎?因爲,對於上面的文件結構,我應該導航出CSS子目錄,進入img子目錄並找到剛剛沒有發生的圖像。 – 2013-02-09 14:13:51