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'),
)
推荐的内容
我已将 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
这对我有用。
我已经通过 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'),
)
推荐的内容
我已将 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
这对我有用。