关闭

heroku部署django之静态文件配置

标签: herokudjango
273人阅读 评论(0) 收藏 举报

大部分步骤如官网的文档 :

https://devcenter.heroku.com/articles/getting-started-with-django 


要将自己的django项目部署到heroku,需要添加或修改一下五个文件:

  1. Procfile
  2. requirements.txt
  3. runtime.txt
  4. wsig.py
  5. settings.py
前四个不易出错,我在修改settings.py时,静态文件的路径在heroku中的配置总是不能成功,而在本地却没问题,因此也坑了挺久。
后来发现,在heroku的官方文档中也有专门说明静态文件的配置的一节:https://devcenter.heroku.com/articles/django-assets

因此在此记录应该注意的地方。

settings.py中静态文件路径的设置:
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
STATIC_ROOT = 'staticfiles'
STATIC_URL = '/static/'

STATICFILES_DIRS = (
    os.path.join(BASE_DIR, 'static'),
)


而对应的工程目录结构:
  • djangoProject
    • mysite
      • mysite
        • __init__.py
        • templates
        • static
          • images
          • css
        • settings.py
        • urls.py
        • wsgi.py
      • manage.py
      • Procfile
      • requirements.txt
      • runtime.txt
urls.py 中加入规则:
(r'static/$','django.views.static.serve',{'document_root':settings.STATIC_ROOT}),
以上是比较简单可用的配置,官方的文档中有更好的推荐。

而原来在本地可以成功,在部署到heroku上却不能成功的代码:
STATIC_URL = '/static/'
STATIC_ROOT = os.path.dirname(os.path.abspath(__file__))
STATICFILES_DIRS = (
    ('css',os.path.join(STATIC_ROOT,'css').replace('\\','/')),
    ('images',os.path.join(STATIC_ROOT,'images').replace('\\','/')),
)


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:729次
    • 积分:47
    • 等级:
    • 排名:千里之外
    • 原创:4篇
    • 转载:2篇
    • 译文:0篇
    • 评论:0条
    文章分类