Heroku上的Django - 破碎的管理员静态文件

cal*_*cho 16 django heroku django-admin

我有一个在Heroku/Cedar上运行的Django应用程序,按照https://devcenter.heroku.com/articles/django上的说明进行配置

按照Heroku的说明使用gunicorn无法包含Django管理员运行所需的静态文件.我可以将Procfile更改为"manage.py run_gunicorn"以进行本地开发,但这不会在Heroku上运行.

我已经搜索了所有的修复 - 是否有一些方法来包含管理静态文件而不会将其与我的其他静态文件一起扔在S3上?

cbe*_*ner 8

如果您使用runserver并使用DEBUG = True配置您的应用程序,那么它将像您在开发计算机上一样提供管理文件.但是,这绝对不是推荐的方法,我建议你把它们放在S3上.

使用django-storages应用程序,可以非常轻松地配置collectstatic以自动将所有管理文件推送到S3.你可以在这里找到方向


Hac*_*ife 8

看看这篇文章:http://matthewphiong.com/managing-django-static-files-on-heroku

如果这对您不起作用,请尝试在正常的url模式元组之后将以下内容添加到urls.py中.确保你已经设置了STATIC_ROOT,并且在推送到heroku之前,你已经在本地环境中运行了collect static.

urlpatterns += patterns('',
    url(r'^static/(?P<path>.*)$', 'django.views.static.serve', {
        'document_root': settings.STATIC_ROOT,
    }),
 )
Run Code Online (Sandbox Code Playgroud)


Rav*_*ngh 5

只需添加这些

from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += staticfiles_urlpatterns()
Run Code Online (Sandbox Code Playgroud)

使用django 1.4.1


Ksh*_*tij 5

与要求的日期相比,似乎晚了一点。但是我遇到了这个问题,花了30分钟来做错了什么。因此,对于那些可能陷入陷阱的人来说,这是一个神奇的解决方案。

Heroku的存在一些问题 django.contrib.staticfiles.urls

您需要在Heroku设置上安装dj-static下载链接)。 这是一个Django中间件实用程序,可以使用Gunicorn之类的WSGI服务器适当地提供生产中的静态资产。

我希望这会对某人有所帮助。