Heroku 上的静态 Django 文件问题

Issue with Static Django files on Heroku

我已经通过 Django 项目部署为 Heroku 应用程序,但无法使静态文件工作。

settings.py

# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.9/howto/static-files/

PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'staticfiles')
STATIC_URL = 'static/'

# Extra places for collectstatic to find static files.
STATICFILES_DIRS = (
    os.path.join(PROJECT_ROOT, 'static'),
)

这正是 Django and Static Assets

推荐的内容

我已将 DISABLE_COLLECTSTATIC 设置为 false

$ heroku config:set DISABLE_COLLECTSTATIC=0 --app mathsproject

文件系统是这样的,

这表明 'static' 目录位于我的 Django 项目的根目录中。但是我没有看到 'staticfiles' 目录在哪里?这应该在某处创建吗?

当运行,

$ heroku 日志

我通常会收到显示静态文件丢失的错误。这在浏览器中也很明显。

......
2016-07-11T07:39:30.187273+00:00 app[web.1]: Not Found: /static/assets/js/jquery-1.10.2.min.js
    2016-07-11T07:39:30.264037+00:00 app[web.1]: Not Found: /static/assets/img/4.png
    2016-07-11T07:39:30.283627+00:00 app[web.1]: Not Found: /static/assets/img/testimonials/1.jpg
........

Whitenoise 已通过添加到 mathProject/wsgi.py

启用
import os

from django.core.wsgi import get_wsgi_application

from whitenoise.django import DjangoWhiteNoise

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mathsProject.settings")

application = get_wsgi_application()

application = DjangoWhiteNoise(application)

到settings.py的底部我放

STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'

运行

$ heroku run bash

然后,

$ python manange.py collectstatic --noinput

这给出了几行错误,最后一行是,

OSError: [Errno 2] No such file or directory: '/app/mathsProject/static'

但是在'mathsProject'

中有一个'static'目录

谢谢,

当 'static' 目录位于 Django 项目目录中时,静态文件被识别,不幸的是,该目录与整个 Django 目录同名。两者都被称为 'mathsProject'。

我也设置了,

$ heroku config:set DISABLE_COLLECTSTATIC=1

这对我有用。