django和heroku:本地服务器上的静态文件不在heroku上

时间:2016-10-03 14:27:29

标签: django heroku

这是我的静态文件配置:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

STATIC_URL = '/static/'

STATIC_ROOT = os.path.join(BASE_DIR, "staticfiles")
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, "static"),
]

DEBUG True urls.py而我的from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r'^', admin.site.urls), url(r'^chats/', include('chats.urls')), ] 根本不提静电:

curl http://127.0.0.1:8000/static/dummy.css

.test_div {
    background-color: red;
}


curl http://127.0.0.1:8000/static/admin/css/base.css
.... an admin CSS file gets served here ....

所以在本地我可以完美地提供我的静态文件:

curl https://pleshka-timer.herokuapp.com/static/admin/css/base.css
... a 404 message....

但是,当我在Heroku上部署完全相同的配置时 - 我收到管理员文件和自定义静态文件的404错误:

collectstatic

与每个代码部署一起运行的heroku heroku run bash命令完成且没有错误。如果我用staticfiles探索dyno,我会看到我的urlpatterns = [ url(r'^', admin.site.urls), url(r'^chats/', include('chats.urls')), ] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 目录就在那里,等待服务。

我错过了什么?

顺便说一下,我总能做到这一点

collectstatic

根据Django文档,这可行;但是,如果Heroku为我做{{1}}例程,我为什么要这样做呢?

0 个答案:

没有答案