[英]Django and staticfiles questions
我學習Django的次數越多,發現新事物的機會就越多。
我閱讀了官方文檔,stackoverflow和google,但我仍然有疑問。
組織靜態文件的正確/正常方式是什么?
我的意思是文件夾和settings.py
我有類似的東西:
CURRENT_PATH = os.path.dirname(__file__)
STATIC_ROOT = os.path.join(CURRENT_PATH, 'static')
STATIC_URL = '/static/'
好的,我要在〜/ static /上收集我所有的應用程序靜態信息
我在每個應用程序上都創建了一個static / appname文件夾,並將所有應用程序的靜態文件都放在那里。
另外,我需要一個靜態文件夾來存放整個項目范圍的靜態數據(它的通用名稱是什么?因為我將/ static /用於收集的內容,所以它們不能相等)。
到目前為止,到目前為止,我的CSS如下:
href="{{ STATIC_URL }}appname/styles.css"
它就像魅力。
但是我認為,當我部署應用程序時,必須運行“ collectstatic”,因此我將“ / static /”文件夾放在切諾基上。
問題是……行得通嗎? 我嘗試對AppDirectoryFinder和_DIRS之一進行注釋,但這在本地不起作用(我收集了靜態內容,我的意思是在/ static /上的css以及其他文件夾中)。
在所有項目的根目錄上都有一個靜態文件夾會更好嗎? 並將admin css復制到該文件夾(又稱為手動收集靜態文件)。
我在github / bitbucket上看到的項目已准備好進行部署,我需要知道從開發人員進行部署的步驟。
謝謝!
我將在使用Django靜態應用程序時對此進行分解
靜態媒體將投放到的網址STATIC_URL ='/ static /',用於模板中的兩件事{{STATIC_URL}}和靜態文件網址,以及將靜態文件托管在django中( 僅用於開發 )
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
文件在服務器上的駐留位置
STATIC_ROOT = '/var/www/website/static'
當您運行collectstatic時,將使用它,這是您的Web服務器應在其中查找的位置
您的文件查找器定義
STATICFILES_FINDERS = (
'django.contrib.staticfiles.finders.FileSystemFinder',
'django.contrib.staticfiles.finders.AppDirectoriesFinder',
)
我使用了django的默認值,您當然可以使用更多默認值,但這是您想要了解的關鍵
'django.contrib.staticfiles.finders.AppDirectoriesFinder'
將在已安裝的應用程序中找到任何名為“ static”的文件夾
'django.contrib.staticfiles.finders.FileSystemFinder'
會告訴django查看STATICFILES_DIRS(這是您項目范圍內的靜態文件)
應該定義為元組
STATICFILES_DIRS = (
join( CURRENT_PATH, 'static' ),
)
您可以在其中使用“靜態”,也可以根據需要添加其他多個文件夾以進行監視。
您放置在每個應用程序內的子目錄(即:app / static / appname)不是必需的,但可以確保不同應用程序內具有相同名稱的文件不會覆蓋其他應用程序或根靜態文件夾中的文件
所有這些都是根據我自己的經驗和https://docs.djangoproject.com/en/1.3/ref/contrib/staticfiles/
另外,我需要一個靜態文件夾來存放整個項目范圍的靜態數據(它的通用名稱是什么?因為我將/ static /用於收集的內容,所以它們不能相等)。
你確定嗎? 我很確定我正在使用同一文件夾來收集我的靜態文件並保存我的項目范圍內的靜態文件。 不知道這是否不建議實踐,但是對我有用。
注意,這只是在部署方面。 我的代碼庫只有項目靜態文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.