Django 静态文件(404 未找到)- Openshift
Django static files (404 not found) - Openshift
我正在尝试 运行 我在 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 后,一切正常,但在本地主机上出现问题。
长话短说:
- 127.0.0.1:8000/static/logo2.png - 未找到
- mysite.rhcloud.com/static/logo.png - 是的,我看到了图片
我希望它很清楚,我的问题和我想象的一样愚蠢。
Django 1.8,OS Windows
解决方案:
我已经从 INSTALLED_APPS 中删除了 'django.contrib.staticfiles' 并添加到 urls.py 这段代码:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
您是否处于开发模式?如果是,并且如果 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。
我正在尝试 运行 我在 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 后,一切正常,但在本地主机上出现问题。
长话短说:
- 127.0.0.1:8000/static/logo2.png - 未找到
- mysite.rhcloud.com/static/logo.png - 是的,我看到了图片
我希望它很清楚,我的问题和我想象的一样愚蠢。
Django 1.8,OS Windows
解决方案:
我已经从 INSTALLED_APPS 中删除了 'django.contrib.staticfiles' 并添加到 urls.py 这段代码:
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
您是否处于开发模式?如果是,并且如果 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。