0

我意识到这是一个在这里提出的很多问题(我读过很多),快速解释开发场景并非易事,所以我将把它压缩成一个可以解释一切的具体简单问题,我没有遇到:

无论模板和设置参数如何生成最终 url,它们最终都会成功生成粘贴在渲染页面之一中的图像 url(类似于:localhost:8000/static/images/image-name.jpg),其中我可以看到,一切都很完美。

我遇到的问题是在不同的代码部分(和应用程序)中,尽管生成的 url 似乎与我现有的目录和文件匹配,但我不断收到 404,我不知道它为什么会失败。所以我所做的只是将我似乎无法加载的图像复制到同一个合法文件夹中(只是将文件粘贴在那里),并修改了 url (localhost:8000/static/images/new-image-name. jpg) - 并得到一个 404(即使在重新加载 django 之后)。我认为这与 db-objects (ImageField 等) 没有任何关系,因为我只是在挑战 url-parse-and-conversion 机制-并且无法弄清楚为什么它适用于某些但不是全部某些路径上的图像(相同的 jpg 格式,图像在图像编辑器中成功加载,实际上是在 mspaint 中绘制的)。

(网址包括 urlpatterns += staticfiles_urlpatterns() ,据我所知,这是唯一与静态相关的 url 行)。

任何想法都会受到赞赏,我一定会遗漏一些关于 url 解码的东西。

谢谢。

4

1 回答 1

0

实际上,这只是因为 Web 服务器将所有请求的处理转发到应用程序服务(wsgi,uwsgi),后者将请求转发给 Django。

可能是我错了,但我认为应用程序服务不应该担心静态文件。并且因为我在应用程序位置之前在 Web 服务器(在我的情况下为 nginx)配置中为静态文件夹创建了单独的位置:

location /static/ {
    access_log        off;
    expires           max;
}

location / {
    include         uwsgi_params;
    uwsgi_pass      unix:///run/uwsgi/app/mysite/socket;
}
于 2013-07-06T15:39:52.873 回答