我很难将项目部署到heroku,因为它说找不到静态文件。我的静态文件位于一个名为“ static”的文件夹中的名为“ social”的应用程序中,而不位于manage.py所在的基本目录中。
--p_12(文件夹)-settings.py
--social(文件夹)-static(文件夹)-CSS,图像,JavaScript
--manage.py
heroku文档说要将其放入您的settings.py:
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'static'),
)
所以我的问题是,如何使它指向我的社交应用程序中的静态文件夹。老实说,我已经尝试了一个小时。感谢您的帮助。
答案 0 :(得分:1)
好吧,这是您不想将静态根源指向社交对象的事情。这就是django最佳实践所说的。
根据您当前的设置(假设您尚未更改BASE_DIR)。您告诉django在根目录下的名为 staticfiles 的文件夹中查找静态文件。
project_root
|__manage.py
|__staticfiles
|__app_name
|__requirements.txt
运行时
python manage.py collectstatic
django查找所有名为static的文件夹,并复制其内容并将其放置在static_root中。
在您的情况下,内容被转储到静态文件中。
理想情况下,在运行collectstaic命令之后,这就是您想要的staticfiles文件夹中的内容。
staticfiles
|___app_1
| |___css
|___js
|___images
|
|___app_2
|___css
|___js
|___images
一旦安装好,django应该能够在生产环境中找到静态文件。
但是要做到这一点。确保在您的应用中像这样存储静态文件。
app_name
|____static
|___app_name
| |____css
|____js
|____images
以这种格式排列文件并运行collectstaic。确保staticfiles具有上述内容。你应该很好。