gpt4 book ai didi

Django runserver 不提供某些静态文件

转载 作者:行者123 更新时间:2023-12-03 07:14:48 24 4
gpt4 key购买 nike

我在 Windows 8.1 上的 Django v1.8.2 本地测试服务器仅提供某些静态文件。其他人则给出 404 错误。

#urls.py - excerpt
urlpatterns = [
url(r'^$', views.index)
] + staticfiles_urlpatterns()

#settings.py - excerpt
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'main',
'users'
)

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, "static/")

据我所知,开发服务器配置为提供静态文件。运行 runserver 时,我没有收到任何警告,并且我的代码没有显示语法错误(import 语句确实存在等等)。出于测试目的,我在启动服务器之前运行了 collectstatic,只是为了确保至少一次。

我的 View 模板是:

{%  load staticfiles %}
<img src="{% static 'main/img/ComingSoon.jpg' %}" alt="Coming Soon">

生成的链接是 /static/main/img/ComingSoon.jpg 看起来正确,该文件确实存在于该位置。令我困惑的是,该目录会产生 404 错误,但会提供其他静态文件。目录层次结构为:

static/
admin/
css/
..
js/
..
img/
..
main/
img/
ComingSoon.jpg

URL localhost:8000/static/admin/img/ 给出了关于不允许索引的预期消息。但是,localhost:8000/static/main/img/ 报告找不到\main\img\。两者都是 404 状态。 static/admin/img/ 中的图像确实可以正确显示,并且具有与出错的链接相同的链接。 Django 的管理站点确实显示正确。

为什么 static/ 中的一个目录无法被索引或访问?

最佳答案

根据Django documentation关于static/:

This should be an initially empty destination directory for collecting your static files from their permanent locations into one directory for ease of deployment; it is not a place to store your static files permanently. You should do that in directories that will be found by staticfiles’s finders, which by default, are 'static/' app sub-directories and any directories you include in STATICFILES_DIRS).

我将文件移动到另一个目录,例如:

myApp/
main/
static/
main/
img/
..
static/
..

运行collectstatic后,我注意到脚本按预期在myApp/static/中创建了子目录,并且它一定已经生成了所需的URL,因为它现在可以正确地提供文件。

关于Django runserver 不提供某些静态文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30857553/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com