【问题标题】:STATIC(CSS AND JS) FILES ARE NOT WORKING AFTER UPLOADING WEBSITE ON HEROKU在 Heroku 上上传网站后,静态(CSS 和 JS)文件无法正常工作
【发布时间】:2021-01-28 23:36:08
【问题描述】:

我刚刚在 heroku 上上传了我的网站,css 和 javascript 文件在 localhost 上运行良好,但在部署后无法运行。我还确保运行这个命令python manage.py collectstatic,我在生产和开发环境中都这样做了,但仍然没有解决问题。我已经包含了有用的必要代码,我还包含了两个实例和我的项目目录的图像

Settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles/')
STATICFILES_DIRS = [os.path.join(BASE_DIR, 'static')]

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

urls.py

from django.conf.urls.static import static
from django.conf import settings

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

这是本地主机上的图像

这是heroku上的图片

这是项目目录结构

【问题讨论】:

  • heroku 是否运行 collectstatic,检查您的构建日志
  • @FalseDev Heroku 运行了 collectstatic 命令。我也这样做了,但结果还是一样。

标签: python django heroku django-views django-templates


【解决方案1】:

Django 在生产环境中不提供静态文件,默认情况下,Heroku 不支持此功能,除非您在项目中添加白噪声,否则请按照以下步骤操作,希望对您有所帮助

您可以关注 Heroku 的官方 documentation,在生产环境中提供静态文件。

【讨论】:

  • 非常感谢,我会检查一下
【解决方案2】:
> Just replace your code with these lines

>urls.py

urlpatterns += static(settings.STATIC_URL,document_root=settings.STATICFILES_DIRS[0])

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

> settings.py
BASE_DIR = Path(__file__).resolve().parent.parent

STATIC_URL = '/static/'
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static")
]


MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

确保您使用 heroku cli 运行命令: heroku 运行 python manage.py collectstatic

【讨论】:

  • 对于您指定的 BASE_DIR,是否需要 pathlib 库
  • Heroku 的文件系统不可修改,heroku run python manage.py collectstatic 不会改变任何事情
  • 我尝试使用您指定的 BASE_DIR 但收到错误“路径未定义”
  • 但是当我第一次尝试部署网站时,heroku 运行 collectstatic 命令时出现错误,我必须清理我的静态文件然后它才能工作,我也成功运行了命令
  • 我已经尝试过您的方法,但仍然得到相同的结果,先生
猜你喜欢
  • 1970-01-01
  • 2019-12-12
  • 1970-01-01
  • 2019-07-25
  • 2011-01-24
  • 2023-03-13
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
相关资源
最近更新 更多