2016-01-06 135 views
1

我正在尋找如何構建我的Django項目的建議。這是我此刻的現有結構:我應該如何在Django中構建我的靜態應用程序文件?

project_name 
    - deploy 
    - app_name 
    -- migrations 
    -- templates 
    -- templatetags 
    -- __init__.py 
    -- admin.py 
    -- context_processors.py 
    -- defaults.py 
    -- models.py 
    -- tests.py 
    -- views.py 
    - static 
    -- admin 
    -- app_name 
     --- css 
     --- fonts 
     --- img 
     --- js 
     --- tinymce 
    - templates 
    - project_name 
    - __init__.py 
    - fabfile.py 
    - manage.py 

我不知道這是更好地在我的應用程序文件夾中的所有靜態文件或者他們應該像它在靜態文件夾和APP_NAME的那一刻?

或者它是另一種更好的方式來構建我的靜態文件?

+0

你應該在應用程序目錄中添加'static'文件夾。請參閱官方文檔https://docs.djangoproject.com/en/1.4/howto/static-files/ –

回答

2

將它們放在應用程序目錄下名爲「static」的目錄中。那就是django.contrib.staticfiles.finders.AppDirectoriesFinder尋找他們by default

static/目錄內,使用您的應用程序名稱創建一個目錄。

所以在部署中,當您運行./manage.py collectstatic時,Django會將所有文件複製到settings.STATIC_ROOT中定義的目錄中,並且每個應用程序都將其文件存放在其自己的子目錄中。

project_name 
- deploy 
- app_name 
    - migrations 
    ... 
    - static 
    - app_name 
     - css 
     - fonts 
     - img 
     - js 
     - tinymce 
    - templates 
    - app_name 
     - item.html 
     - list.html 
- project_name 
- __init__.py 
- manage.py 

另外,根據字體,CSS,你有JS文件的數量,我只是把他們內部app_name/static/app_name/,而不是創建另一個目錄級別js/css/。就像他們說的那樣,「平坦勝過嵌套」。

+0

謝謝你。我首先嚐試了,但沒有將結果創建到靜態文件夾中。謝謝! –

2

如果你的所有點大約爲靜態文件,通過經驗法則:

  • 放在你的應用程序,如果他們是特定於應用程序
  • 把他們的依賴(比如,另一個應用程序你應該需要安裝在你的django項目中,儘管這個概念並沒有被Django強制執行,但是如果你的資產對於許多django應用程序來說是全球性的,那麼它是由Python包管理系統(如setuptools)執行的(如果你計劃發佈你的django應用程序)你有。你也應該釋放(如果是這種情況)並在你的django項目中安裝依賴項(否則文件將無法訪問)。
  • 將它們放在項目的全局靜態目錄中,如果它們只針對項目。

他們只是提示,但最實踐的。只要路徑可以通過Django靜態文件加載器訪問,您可以將它們放在您想要的位置。

相關問題