【发布时间】:2019-09-12 01:02:05
【问题描述】:
我正在建立一个 Heroku 站点来为一个学校项目部署一个 Django 应用程序。问题在于 Django 中使用白噪声的静态文件。
快速上下文:我的应用程序包含一个表单,该表单包含 4 个值,我用于在脚本中进行快速数学计算。该脚本的目的是执行计算,使用 matplotlib 绘制绘图并将其保存在我的 django 应用程序的静态文件夹中,如果它已经存在则替换旧的。此静态文件用于在站点的 html 页面中显示。每次我提交一个新表单时,它就像一个更新情节的魅力。但是当我尝试 Heroku 时,它会抛出一个
[Errno 2] 没有这样的文件或目录:'/Users/jeff/Desktop/trydjango/src/static/yield_curve.png'
当我提交表单时。
这是我关于静态文件的settings.py:
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static'),]
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'
我的目录如下所示:
src
|-- /TER
|-- -- /settings.py
|-- /graph
|-- /static/...
|-- /staticfiles/...
|-- /manage.py
我希望我的网站在每次使用我保存在静态文件夹中的新yield_curve.png 提交表单时刷新图像。
如果我不得不猜测,我会说这与静态文件必须是“静态的”并且不随时间变化的事实有关。
【问题讨论】:
-
您能否发布您的 settings.py 文件的全部内容?
-
问题不在于 Django,而在于 Heroku。你不能在 Heroku 的文件系统上持久保存东西。使用像 S3 这样的永久位置。
-
谢谢,到时会进入!
标签: django python-3.x heroku