Python 在HEROKU上上载网站后,静态(CSS和JS)文件不起作用

Python 在HEROKU上上载网站后,静态(CSS和JS)文件不起作用,python,django,heroku,django-views,django-templates,Python,Django,Heroku,Django Views,Django Templates,我刚刚在heroku上上传了我的网站,css和javascript文件在localhost上运行得非常好,但在部署之后就不起作用了。我还确保运行这个命令python manage.py collectstatic,这是我在生产和开发环境中都做过的,但仍然不能解决问题。我已经包括了必要的代码,这将是有用的,我还包括了这两个实例和我的项目目录的图像 设置.py STATIC_URL = '/static/' STATIC_ROOT = os.path.join(BASE_DIR, 'staticfi

我刚刚在heroku上上传了我的网站,css和javascript文件在localhost上运行得非常好,但在部署之后就不起作用了。我还确保运行这个命令
python manage.py collectstatic
,这是我在生产和开发环境中都做过的,但仍然不能解决问题。我已经包括了必要的代码,这将是有用的,我还包括了这两个实例和我的项目目录的图像

设置.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')
url.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 cli运行命令: heroku运行python manage.py collectstatic

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


Django不在生产环境中提供静态文件,默认情况下,Heroku不支持此功能,除非您将whitenoise添加到项目中。请遵循这些步骤,希望它能帮助您


您可以跟随Heroku官方在生产环境中提供静态文件。

Django不在生产环境中提供静态文件,默认情况下,Heroku不支持此功能,除非您将whitenoise添加到项目中。请遵循这些步骤,希望它能帮助您


您可以跟随Heroku官方在生产中提供静态文件。

Heroku是否运行了
collectstatic
,请检查您的构建logs@FalseDevHeroku运行了collectstatic命令。我也这么做了,但结果还是一样的。heroku是否运行了
collectstatic
,检查您的构建logs@FalseDevHeroku运行了collectstatic命令。我也这样做了,但结果仍然相同。对于您指定的基本目录,是否需要pathlib libraryHeroku的文件系统不可修改,
heroku run python manage.py collectstatic
不会更改任何内容我尝试使用您指定的基本目录,但出现错误“路径未定义”但是,当我第一次尝试部署网站时,heroku运行collectstatic命令时出现错误,我必须清理静态文件,然后它工作了,我也成功地运行了该命令。我尝试了你的方法,但仍然得到与你指定的BASE_DIR相同的结果,它是否需要pathlib libraryHeroku的文件系统不可修改,
heroku run python manage.py collectstatic
不会更改任何内容我尝试使用您指定的BASE_DIR,但出现错误“path is not defined”,但当我第一次尝试部署网站时,heroku运行collectstatic命令时出现错误,我必须清理我的静态文件,然后它工作了,我也成功地运行了命令。我已经尝试了你的方法,但仍然得到相同的结果。谢谢你,我会检查它的。谢谢你,我会检查它的。谢谢你,我会检查它的
> 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')