我正在尝试使用Heroku部署我的Django网站。到目前为止,网站已经部署成功,但唯一的问题是收集静态文件。我被如何配置我的settings.py文件卡住了,这样网站就知道在哪里可以找到这些静态文件。
- 文件夹结构 *
-website
---App
------Static
---------App
---Website
---staticfiles
---manage.py
---Procfile
---requirements.txt
---runtime.txt
- 设置.py*
DEBUG = False
BASE_DIR = Path(__file__).resolve().parent.parent
MIDDLEWARE = [
...
"whitenoise.middleware.WhiteNoiseMiddleware",
...
]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATICFILES_DIRS = [
os.path.join(BASE_DIR, "static"),
os.path.join(BASE_DIR, "App/static")
]
django_heroku.settings(locals())
STATICFILES_STORAGE = "whitenoise.storage.CompressedManifestStaticFilesStorage"
- 错误消息 *
whitenoise.storage.MissingFileError:The file 'App/static/app/styling-images/search_button.png' cannot be found with〈whitenoise.storage.CompressedManifestStaticFilesStorage object at 0x0000016932C5D190〉.
CSS文件“App\styles.css”引用了一个找不到的文件:App/static/app/styling-images/search_button.png
请检查此CSS文件中的URL引用,特别是可能指向错误位置的任何相对路径。
1条答案
按热度按时间aij0ehis1#
我怀疑静态文件实际上被发现了,这里的问题是其中一个文件,一个CSS文件,使用了一个硬编码的URL,如:
如果DEBUG=True,这可能会正常工作,但在生产环境中则不行。您应该能够更改CSS url()以使用您的STATIC_URL设置作为其顶级,例如,
(You我可以告诉你,如果你已经得到了正确的网址输入到您的浏览器后,您的域名,看看它是否返回的图像。使用静态_URL的顶级也应该在您的开发环境)