我将客户端项目文件夹和django项目文件夹分别放在根文件夹下。我将django settings.py配置为包含客户端的app文件夹以在开发中提供,而dist文件夹由collectstatic收集
STATICFILES_DIRS = [os.path.join(BASE_DIR, "..", "Client/app"), # in development
os.path.join(BASE_DIR, "..", "Client/dist"), # to be gathered by collectstatic
]
Client/app
包含用于开发的原始js / css / html文件
Client/dist
包含用于生产的连接和uglified文件。
由于Client/app
文件夹仅用于开发,我想在使用collectstaic命令时排除该文件夹。
但是,collectstatic -i app
不会排除客户端/应用程序文件夹。我试过了
collectstatic -i Client/app
collectstatic -i ../Client/app
collectstatic -i app*
但是,没有任何效果。
如何排除django目录外的文件夹?
答案 0 :(得分:1)
你不会这样做。您可以根据您运行的环境定义不同的STATICFILES_DIR
。
非常基本的想法:
if DEBUG:
STATICFILES_DIRS = [os.path.join(BASE_DIR, "..", "Client/app")]
else:
STATICFILES_DIRS = [os.path.join(BASE_DIR, "..", "Client/dist")]
不是依赖于DEBUG
设置,我建议您为每个设置使用单独的配置文件。然后,您可以选择在调用Django时运行的内容。
例如,假设这个文件树:
settings/
├ __init__.py # empty
├ dev.py
└ prod.py
...你会这样开始Django:
export DJANGO_SETTINGS_MODULE="settings.dev"
./manage.py runserver
为避免重复共享配置,请使用common.py
创建dev.py
并从prod.py
和from settings.common import *
导入它(可能是允许导入的唯一用例) *)。
虽然它在技术上没有回答你的问题,但我认为这是处理特定环境配置的更广泛问题的一种更清洁的方法。