Python Django静态文件(未找到404)-Openshift
我试图在Openshift上使用Python/Django运行我的第一个项目,但在加载静态文件时遇到了问题 我已经读了好几遍了,一整天我都在为这件事绞尽脑汁,但还是没能找出问题所在 我正在运行开发人员服务器:Python Django静态文件(未找到404)-Openshift,python,django,static,openshift,static-files,Python,Django,Static,Openshift,Static Files,我试图在Openshift上使用Python/Django运行我的第一个项目,但在加载静态文件时遇到了问题 我已经读了好几遍了,一整天我都在为这件事绞尽脑汁,但还是没能找出问题所在 我正在运行开发人员服务器: python manage.py runserver setting.py STATIC_URL = '/static/' if 'OPENSHIFT_REPO_DIR' in os.environ: STATIC_ROOT = os.path.join(os.environ.
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>
最奇怪的是,在将我的应用程序推到openshift后,一切都正常,但在本地主机上出现了一些问题
长话短说:
- 127.0.0.1:8000/static/logo2.png-未找到
- mysite.rhcloud.com/static/logo.png-是的,我看到了图片
if settings.DEBUG:
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)
您是否处于开发模式?如果是,并且安装的应用程序中没有django.contrib.static文件,则需要将其添加到URL.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)
解释。是的,我认为我处于开发模式(DEBUG=True),并且在已安装的应用程序中有django.contrib.static文件。这种代码的和平并不存在;我们无法解决这个问题,而且仍然找不到静态文件。这样做很少是个好主意。当您拥有
DEBUG=True
Django通常可以从static\u URL
提供静态文件,而无需向urlpatterns
添加任何内容。问题可能是您将静态文件放在WSGI_DIR/static
中,而不是放在app目录中,app目录是一个规范的位置。这也可能是因为这个原因,但有一次我遇到了同样的问题,我只使用此解决方案进行了修复。如果这不是一个好主意,为什么会出现在django官方文件中?
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)