我意识到这是一个在这里问题中提出了很多问题(我读了很多),并且快速解释开发场景并不容易,所以我会把它压缩成一个特定的简单问题可以解释一切,我没有遇到过:
无论模板和设置参数如何生成最终URL,它们最终都会成功生成粘贴在其中一个渲染页面中的图像URL(类似于:localhost:8000 / static / images / image-name)。 jpg)我可以看到,一切都很完美。
我遇到的问题是在不同的代码部分(和应用程序)中,虽然生成的url似乎与我现有的目录相匹配,但仍然会获得404s。文件,我不知道它为什么失败。 所以我所做的只是将我似乎无法加载的图像复制到同一个legal-folder(只是粘贴文件),并修改了url(localhost:8000 / static / images / new-image-name。 jpg) - 并获得了404(甚至在重装django之后)。 我不认为这必须对db-objects(ImageField等)做任何事情,因为我只是挑战url-parse-and-conversion机制 - 并且无法弄清楚为什么它适用于某些但不是全部某些路径上的图像(相同的jpg格式,图像在图像编辑器中成功加载,实际上是在mspaint中绘制的)。
(网址包括urlpatterns + = staticfiles_urlpatterns(),据我所知,这是唯一与静态相关的网址。)
任何想法都会受到赞赏,我必须遗漏一些关于url-decoding的内容。
感谢。
答案 0 :(得分:0)
实际上,这只是因为Web服务器将对请求转发给Django的所有请求转发到应用程序服务(wsgi,uwsgi)。
可能是我错了,但我认为应用服务不应该担心静态文件。 并且因为我在Web服务器(在我的情况下为nginx)中创建了单独的位置,在应用程序的位置之前为静态文件夹配置:
location /static/ {
access_log off;
expires max;
}
location / {
include uwsgi_params;
uwsgi_pass unix:///run/uwsgi/app/mysite/socket;
}