【发布时间】:2020-02-02 17:18:25
【问题描述】:
请任何人解释我 - 为什么要求该网址 -
http://localhost/static/css/style.css
返回404?
这是我的 nginx.conf
的一部分location ~ /static/(?<doctype>[js|css]+) {
# root /usr/src/app/public/;
if ($doctype = "css") {
set $contnt_type "text/css";
}
if ($doctype = "js") {
set $contnt_type "text/javascript";
}
expires 30d;
add_header X_Cached 1;
access_log off;
add_header Cache-Control "public";
add_header Content-Type $contnt_type;
return 200 "$doctype";
}
谢谢
【问题讨论】:
-
应该是
$content_type? -
您的正则表达式看起来不对。
[和]用于定义一个字符类。而且,$后面有字符,这是字符串锚点的结尾。也许这样的事情会起作用:location ~ ^/static/(?<doctype>js|css)/ { ... } -
您的正则表达式包含许多个错误。您想在
http://localhost/static/css/style.cssURL 上的$doctype变量中捕获什么?你想退回什么? -
@IvanShatsky 我想捕捉子路径的两个变体之一 - 它的“css”或“js”放在 request_uri 中的
/static/之后 -
我了解到您希望在此位置处理 *.js 和 *.css 文件。当您收到
http://localhost/static/css/style.css请求时,您在$doctype变量中取得了什么结果?