Nginx静态媒体,以及尾部斜杠的问题

时间:2011-06-05 01:46:57

标签: nginx

叹息......当我以为我已经在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中是否有一些我缺少的配置选项?

1 个答案:

答案 0 :(得分:1)

在请求中使用斜杠将使大多数服务器假定您需要css文件夹中的hello.css文件夹。显然,这会让人感到困惑。

  

网址不应以尾随结尾   斜线?

不。为此页面或几乎任何其他页面创建视图源。

<link rel="shortcut icon" href="http://cdn.sstatic.net/stackoverflow/img/favicon.ico">

请参阅?没有尾随斜线。