这是我的静态文件配置:
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}}例程,我为什么要这样做呢?