Я пытаюсь запустить свой самый первый проект с использованием Python / Django в Openshift, и у меня возникли проблемы с загрузкой моих статических файлов.
Я прочитал https://docs.djangoproject.com/en/dev/howto/static-files/ несколько раз я ломал себе голову над этим целый день, но не могу понять проблему.
Я запускаю сервер разработчика:
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()
Самое странное, что после того, как мое приложение перешло на openshift, все работает нормально, но на localhost что-то идет не так.
Короче говоря:
- 127.0.0.1:8000/static/logo2.png - Не найдено
- mysite.rhcloud.com/static/logo.png - Да, я вижу изображение
Надеюсь, все ясно, и моя проблема такая же глупая, как я себе представляю.
Django 1.8, ОС Windows
РЕШЕНИЕ:
Я удалил django.contrib.staticfiles из INSTALLED_APPS и добавил в urls.py этот кусок кода:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)