2017-02-07 7 views
0

私はOpenshiftでPython/Djangoを使用して私の最初のプロジェクトを実行しようとしています。Djangoの静的ファイル(404が見つかりません) - 変更点

私はhttps://docs.djangoproject.com/en/dev/howto/static-files/を何度も読んだことがありますが、私は1日中これ以上頭を痛めていますが、問題を理解することはできません。

私は、開発サーバを実行しているよ:

python manage.py runserver 

setting.py

STATIC_URL = '/static/' 

if 'OPENSHIFT_REPO_DIR' in os.environ: 
    STATIC_ROOT = os.path.join(os.environ.get('OPENSHIFT_REPO_DIR'), 'wsgi', 'static') 
else: 
    STATIC_ROOT = os.path.join(WSGI_DIR, 'static') 

テンプレート

{% load static %} 
<a href=""><img src="{% static "logo2.png" %}"></a> 

urls.py

from django.conf.urls import include, url 
from django.contrib import admin 
from django.views.generic import RedirectView 
from django.contrib.staticfiles.urls import staticfiles_urlpatterns 

urlpatterns = [ 
    url(r'^$', RedirectView.as_view(url='/index/')), 
    url(r'^index/', include('index.urls')), 
    url(r'^polls/', include('polls.urls')), 
    url(r'^admin/', include(admin.site.urls)), 
] 

urlpatterns += staticfiles_urlpatterns() 

奇妙なことは、私のアプリをオープンシフトにプッシュした後、すべてがうまく動いていますが、localhostでsthが間違っていることです。

長い話を短くする:

  • 127.0.0.1:8000/static/logo2.png - 見つかりません
  • mysite.rhcloud.com/static/logo.png - ええ、私は画像を参照してください

私はそれが明らかで、私の想像と同じように私の問題は愚かであると思います。

ジャンゴ1.8、OSのWindows

SOLUTION:

私はINSTALLED_APPSから 'django.contrib.staticfiles' を削除し、urls.pyにこのコードの平和を追加しました:

if settings.DEBUG: 
    urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) 

答えて

-1

開発モードですか?そうであれば、あなたはINSTALLED_APPSでdjango.contrib.staticfilesを持っていない場合、あなたはurls.pyにこれを追加する必要があります。

from django.conf import settings 
from django.conf.urls.static import static 

urlpatterns = [ 
... 
] 

if settings.DEBUG: 
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

hereを説明しました。

+0

はい、私は開発モード(DEBUG = True)にあり、INSTALLED_APPSにdjango.contrib.staticfilesがあると思います。このコードの平和は問題を解決せず、静的ファイルはまだ見つからない。 – dekarz

+0

これを行うことはまれです。 'DEBUG = True'を指定すると、Djangoは通常' STATIC_URL'の静的ファイルを 'urlpatterns'に何も追加することなく提供することができます。この問題はおそらく、標準ディレクトリであるappディレクトリの内部ではなく、静的ファイルを 'WSGI_DIR/static'に置いていることでしょう。 –

+0

その理由もありますが、一度同じ問題があって、私はこの解決策でしか修正できませんでした。それが良い考えではない場合、なぜそれが公式のジャンゴ文書にありますか? –

関連する問題