2017-09-26 76 views
1

我在後端使用django,在前端我使用vue.js,所以99%的CSS由vue.js處理,但是我需要一個簡單的base.css用於登陸頁面中的一些定製以及諸如此類的一些事情。Django直接從靜態文件夾加載靜態開發(不是來自應用程序)

通常在django中,我會把文件放在app/static/app/base.css之內,然後進行collectstatic並在static/app/之下進行生產。

我想避免將它保存在應用程序下,因爲它只是一個文件。我試圖在我的主「靜態」文件夾下添加一個文件夾。但在開發django中似乎根本沒有獲取它,它直接從應用程序中提取靜態文件。

如何讓django直接從static主文件夾中獲取它,就像在生產中一樣?

即我想在我的根目錄(其中manage.py是)中添加一個名爲main的文件夾,並且僅使用它來存儲我的靜態文件以用於生產和開發,而無需通過單個應用程序。

回答

1

您可以通過使用STATICFILES_DIRS設置來告訴Django在其他目錄中查找靜態文件。

只需添加以下代碼在您的settings.py,它應該工作:

STATICFILES_DIRS = [ 
    os.path.join(BASE_DIR, "static"), 
] 
+0

但後來我得到:'django.core.exceptions.ImproperlyConfigured:該STATICFILES_DIRS設置不應包含STATIC_ROOT setting' – Costantin

+0

@Costantin'STATIC_ROOT'和'STATICFILES_DIRS'不應該是一樣的。如果你想Django從你的項目的'static'目錄渲染靜態文件,使用'STATICFILES_DIRS'指定它(就像在這個答案中一樣)。 'STATIC_ROOT'設置意味着你想要收集你的靜態文件。 – xyres

+0

現在一切是這樣的: STATIC_URL = '/靜態/' STATIC_ROOT = os.path.join(BASE_DIR,」 .. 「 」資產「) STATICFILES_DIRS = [ os.path.join(BASE_DIR」。 。「,」static「), ] 但是文件夾資產甚至不存在。我猜django會創建它,如果我運行收集靜態,但我可能不需要它。我可以完全刪除整個STATIC_ROOT嗎? – Costantin

相關問題