ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

如何使用gunicorn在heroku上提供django静态文件

2019-07-09 03:55:02  阅读:279  来源: 互联网

标签:python heroku django django-staticfiles


我在Django中有一个应用程序,我在heroku上部署它但我无法在服务器上提供静态文件,下面是我的代码和设置:

settings.py

DEBUG = True
TEMPLATE_DEBUG = DEBUG
import os
PROJECT_PATH = os.path.abspath(os.path.dirname(__file__))
SITE_PATH = os.path.abspath(os.path.join(PROJECT_PATH, os.path.pardir))

STATIC_ROOT = ''
STATIC_URL = '/static/'
STATICFILES_DIRS = (
    os.path.join(SITE_PATH, 'staticfiles'),)
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder',
    'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#    'django.contrib.staticfiles.finders.DefaultStorageFinder',
)

urls.py

from django.conf import settings
from django.conf.urls import patterns, include, url
from polls.views import VoteClassBasedView
from django.contrib import admin
admin.autodiscover()


urlpatterns = patterns('',
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', include(admin.site.urls)),
)

Procfile

web: gunicorn django_polls.wsgi

我的本地目录结构

drwxrwxr-x 2 user1 user1  4096 Jul  5 11:48 django_polls/
-rwxr-xr-x 1 user1 user1   255 Jun 22 15:50 manage.py*
drwxrwxr-x 5 user1 user1  4096 Jul  3 14:41 polls/
-rw-r--r-- 1 user1 user1 50176 Jul  5 11:41 polls.db
-rw-rw-r-- 1 user1 user1    32 Jul  4 18:57 Procfile
-rw-rw-r-- 1 user1 user1   338 Jun 25 18:51 README.md
-rw-rw-r-- 1 user1 user1   310 Jul  4 17:09 requirements.txt
drwxrwxr-x 5 user1 user1  4096 Jul  4 17:57 staticfiles/
                                                         /bootstrap
                                                         /admin
                                                         /polls 
drwxrwxrwx 3 user1 user1  4096 Jun 22 18:59 templates/

Heroku文件结构

drwx------ 2 u19068 19068 4096 2013-07-05 11:31 django_polls/
-rwx------ 1 u19068 19068  255 2013-07-05 11:28 manage.py*
drwx------ 5 u19068 19068 4096 2013-07-05 11:31 polls/
-rw------- 1 u19068 19068   32 2013-07-05 11:28 Procfile
-rw------- 1 u19068 19068  338 2013-07-05 11:28 README.md
-rw------- 1 u19068 19068  310 2013-07-05 11:28 requirements.txt
-rw------- 1 u19068 19068   13 2013-07-05 11:28 runtime.txt
drwx------ 5 u19068 19068 4096 2013-07-05 11:28 staticfiles/
                                                          /bootstrap
                                                          /admin
                                                          /polls 
drwx------ 3 u19068 19068 4096 2013-07-05 11:28 templates/

上面的代码能够在本地机器上提供css文件(实际上我与bootstrap集成),但在将它提交到heroku git hub并运行类似polls.herokuapp.com/polls/之类的url后,它正在提供html文件和整个功能,但无法提供css文件.

此外,当我运行命令foreman start时,它也提供静态(css,js)文件,但是在heroku上部署时相同的代码无法为静态文件提供服务.

谁能告诉我需要在哪些文件中进行哪些更改才能在heroku上部署Django应用程序?

请注意,我已经完成了R& D并应用了各种代码,例如在urls.py中使用django.contrib.staticfiles.urls import staticfiles_urlpatterns但无法获得解决方案.

解决方法:

在部署应用程序时,首先在设置文件中更改DEBUG = FALSE.

以下链接可能很有用.

https://devcenter.heroku.com/articles/django#deploy-to-heroku

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

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

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

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

ICode9版权所有