私は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)
はい、私は開発モード(DEBUG = True)にあり、INSTALLED_APPSにdjango.contrib.staticfilesがあると思います。このコードの平和は問題を解決せず、静的ファイルはまだ見つからない。 – dekarz
これを行うことはまれです。 'DEBUG = True'を指定すると、Djangoは通常' STATIC_URL'の静的ファイルを 'urlpatterns'に何も追加することなく提供することができます。この問題はおそらく、標準ディレクトリであるappディレクトリの内部ではなく、静的ファイルを 'WSGI_DIR/static'に置いていることでしょう。 –
その理由もありますが、一度同じ問題があって、私はこの解決策でしか修正できませんでした。それが良い考えではない場合、なぜそれが公式のジャンゴ文書にありますか? –