叹息......当我以为我已经在Django
的网址中找到了包含尾随斜杠的所有问题时 - 我开始使用nginx
...
所以我正在配置nginx
来提供静态媒体,并且反复失败 - 尽管我的配置与nginx
配置,而是我的HTML文件,其中包含.css文件的尾部斜杠:
# hello.html (invalid)
<link rel="stylesheet" href="/media/css/hello.css/" type="text/css" />
# resulting log error
[error] 27705#0: "/home/www/static/css/hello.css/index.html" is not found
request: "GET /media/css/hello.css/ HTTP/1.1"
# hello.html (valid)
<link rel="stylesheet" href="/media/css/hello.css" type="text/css" />
通过删除文件名上的尾部斜杠,它工作正常。但为什么? URL不应以尾部斜杠结尾吗?
我最近浏览了所有Django
模板,为每个媒体文件添加了斜杠。我是否必须删除全部,或者nginx
中是否有一些我缺少的配置选项?
答案 0 :(得分:1)
在请求中使用斜杠将使大多数服务器假定您需要css文件夹中的hello.css文件夹。显然,这会让人感到困惑。
网址不应以尾随结尾 斜线?
不。为此页面或几乎任何其他页面创建视图源。
<link rel="shortcut icon" href="http://cdn.sstatic.net/stackoverflow/img/favicon.ico">
请参阅?没有尾随斜线。