ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python – 没有加载Heroku静态文件,Django

2019-10-07 06:56:24  阅读:282  来源: 互联网

标签:django-staticfiles python django heroku


我正在尝试将my Django project推送到Heroku,但它没有加载静态文件.

我使用this设置的东西,一切都很好,但我无法解决静态文件的问题.

我的目录结构是这样的

help_the_needy
    help_the_needy
        __init__.py
        settings.py
        urls.py
        views.py
        wsgi.py
    manage.py
    Procfile  
    requirements.txt  
    static
        css
        font-awesome
        fonts  
        img  
        js
    templates
        base.html
        display_list2.html
        index.html

Here是完整代码(所有文件).

This是我的settings.py.

我尝试了很多东西来解决这个问题,但似乎没有任何工作.

当我推它does copy static files但它没有加载它们.

有人可以指出我的错误吗?哪里错了?

解决方法:

我一直在处理同样的问题.以下是我在代码中更改的两件事.

(我正在使用Django 1.7)

1)settings.py

我将这些行添加到设置文件中

BASE_DIR = os.path.dirname(os.path.dirname(__file__))
STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
STATICFILES_STORAGE = 'whitenoise.django.GzipManifestStaticFilesStorage'
TEMPLATE_DIRS = (
    os.path.join(BASE_DIR,  'templates'),
    # Add to this list all the locations containing your static files 
)

STATIC_ROOT:这告诉Django在(a)运行python manage.py collectstatic时放置静态文件和(b)运行应用程序时找到静态文件的位置

TEMPLATE_DIRS:这告诉Django在运行python manage.py collectstatic时搜索静态文件时在哪里查找静态文件

2)wsgi.py

最初我的文件是:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxxx.settings")

from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()

我把它改成了:

import os
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "xxxx.settings")

from django.core.wsgi import get_wsgi_application
from whitenoise.django import DjangoWhiteNoise
application = get_wsgi_application()
application = DjangoWhiteNoise(application)

有关whitenoise:https://devcenter.heroku.com/articles/django-assets#whitenoise的更多信息,请阅读此处

另外,请记住安装whitenoise:
    pip install whitenoise == 2.0.6

在部署项目之前,运行:
    python manage.py collectstatic

这将创建一个由STATIC_ROOT指示的文件夹(在settings.py中声明),其中包含所有静态文件.

标签:django-staticfiles,python,django,heroku
来源: https://codeday.me/bug/20191007/1865303.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有