2017-09-26 42 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

相关问题