2012-01-28 17 views
35

私はherokuにプロジェクト(myapp)を持っていますが、静的ファイルを正しく取得することができません。私はこれに続いていたblog postHeroku - Djangoアプリケーションの静的ファイルの処理

は私のProcfileは、次のようになります。

web: python myapp/manage.py collectstatic --noinput; bin/gunicorn_django --workers=4 --bind=0.0.0.0:$PORT myapp/settings.py 

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'), 
) 

... 

再起動heroku restartこれを使って何heroku logs示しています

... 
Copying ... 

114 static files copied to '/app/myapp/staticfiles'. 
... 

をしかし、私はheroku run ls -l myapp/ Iを行うとき

-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 

は、私が何をしないか、間違っています:staticfilesフォルダを見ることができませんか?

+2

私は最近HerokuアプリからS3に静的ファイルを提供することについて精巧な説明を書きました。http://balzerg.blogspot.co.il/2012/09/staticfiles-on -heroku-with-django.html – idanzalz

答えて

39

解決策が見つかりました。これが私の最初の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)), 
) 

私は元myapp/urls.pyファイルの最後に以下の行を追加:

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

は、今では正常に動作しています。私はこれが誰か他の人にも役立つことを願っています

+0

私はこれをやろうとしましたが、このエラーが発生し、アプリケーションがクラッシュしました。何か案は?'2012-03-23T21:55:57 + 00:00 app [web.1]:ImportError: 'appName/settings.py'の設定をインポートできませんでした(sys.pathにありますか? –

+1

@Aswath try 'from django.conf import settings' –

+0

http://stackoverflow.com/questions/10308985/django-on-heroku-broken-admin-static-files – Dmitry

0

「./manage.py collectstatic」を実行する前に、設定で空のSTATIC_ROOTフォルダを手動で作成してください。

+0

既に試してみました。役に立たなかった –

関連する問題