Cés*_*sar 35 django static heroku
我在heroku中有一个项目(myapp),但我无法让静态文件正常工作.我正在关注这篇博文.
我Procfile看起来像这样:
web: python myapp/manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT myapp/settings.py
Run Code Online (Sandbox Code Playgroud)
settings.py:
...
STATIC_ROOT = os.path.join(PROJECT_PATH, 'staticfiles')
STATIC_URL = '/static/'
ADMIN_MEDIA_PREFIX = '/static/admin/'
STATICFILES_DIRS = (
# I have the static folder inside my app and not inside the project
os.path.join(PROJECT_PATH, 'cesar/static'),
)
...
Run Code Online (Sandbox Code Playgroud)
使用heroku restart它重新启动时heroku logs显示:
...
Copying ...
114 static files copied to '/app/myapp/staticfiles'.
...
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我heroku run ls -l myapp/看不到staticfiles文件夹:
-rw------- 1 u5605 5605 0 Jan 28 16:53 __init__.py
drwx------ 4 u5605 5605 4096 Jan 28 16:53 cesar
-rw------- 1 u5605 5605 503 Jan 28 16:53 manage.py
-rw------- 1 u5605 5605 6292 Jan 28 16:53 settings.py
drwx------ 2 u5605 5605 4096 Jan 28 16:53 templates
-rw------- 1 u5605 5605 257 Jan 28 16:53 urls.py
-rw------- 1 u5605 5605 286 Jan 28 16:53 views.py
Run Code Online (Sandbox Code Playgroud)
我错过了什么或做错了什么?
Cés*_*sar 38
我找到了解决方案.这是我最初的myapp/urls.py:
from django.conf.urls.defaults import patterns, include, url
from django.contrib import admin
from django.conf import settings
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', include('myapp.cesar.urls')),
url(r'^admin/', include(admin.site.urls)),
)
Run Code Online (Sandbox Code Playgroud)
我将这些行添加到原始myapp/urls.py文件的末尾:
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)
现在它工作正常.我希望这也有助于其他人
| 归档时间: |
|
| 查看次数: |
15822 次 |
| 最近记录: |