Heroku collectstatic在部署期间不运行

har*_*jay 5 django heroku django-admin

我有一个django应用程序,我成功地接受了heroku.当我在本地干运行collectstatic命令时一切正常.

python manage.py collectstatic --dry-run --noinput
....
Pretending to copy '/Users/hari/.virtualenvs/bsc2/lib/python2.7/site-packages/django/contrib/admin/static/admin/js/admin/ordering.js'
Pretending to copy '/Users/hari/.virtualenvs/bsc2/lib/python2.7/site-packages/django/contrib/admin/static/admin/js/admin/RelatedObjectLookups.js'

71 static files copied.
Run Code Online (Sandbox Code Playgroud)

尽管如此..我的django管理静态文件不会被使用,我在heroku上得到一个简单的django管理站点,Debug设置为False.

如果我将Debug设置为True,我会在heroku上获得一个"丰富"的管理站点.将Debug设置为True或False"git push heroku master"命令终端输出没有关于收集静态文件的任何内容.

我尝试了一个示例"helloworld"应用程序,该应用程序使用来自Heroku的gunicorn并且确实显示了"收集静态"消息.我也尝试将此代码片段插入到我的urls.py中.但这也无济于事.

来自django.conf导入设置

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

接下来,我尝试将以下内容添加到我的heroku配置中

heroku config:add DISABLE_COLLECTSTATIC=0
Run Code Online (Sandbox Code Playgroud)

但这也没有显示我的django管理网站的所有样式.

最后我尝试使用我的Procfile切换到gunicorn,但也没有显示管理员样式.仅设置Debug = True可以显示我的管理样式.

我在Heroku上尝试使用Django 1.4.2和1.5.1,但两者都没有向我显示"正常"的管理站点.有没有办法在没有S3路线的情况下将我的管理文件放在heroku上.

Tho*_*mas 10

命令终端输出没有关于收集静态文件的任何信息.

看看heroku-buildpack-python:bin/steps/collectstatic似乎它试图在显示消息之前做一个collectstatic --dry-run --noinput并将其输出管道.这意味着如果本地方框中没有错误,您将永远不会在heroku上看到错误:它将无声地失败.(最好的失败;)/dev/null-----> Collecting static files

您是否尝试过运行一次性工作人员来测试collectstatic命令并查看它们的环境是否存在问题?

heroku run python manage.py collectstatic --dry-run --noinput
Run Code Online (Sandbox Code Playgroud)

如果此操作失败,它将为您提供错误或回溯以查看并进一步诊断问题.