Django静态文件(未找到404) - Openshift

时间:2017-02-07 16:21:00

标签: python django static openshift static-files

我试图在Openshift上使用Python / Django运行我的第一个项目,并且在加载静态文件时遇到问题。

我已经多次阅读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,OS Windows

SOLUTION:

我删除了&#39; django.contrib.staticfiles&#39;从INSTALLED_APPS中添加到urls.py这段代码:

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

1 个答案:

答案 0 :(得分:-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