这是我的html。
{withCredentials: true}
文件夹中有两个js文件,一个用于生产(<head>
<title>My Application</title>
<script src="app.min.js"></script>
</head>
),另一个用于开发(app.min.js
)。
我想要的是通过查询字符串切换js文件。就像:
app.debug.js
我尝试使用以下配置,但它不起作用。
http://example.com/ -> use app.min.js
http://example.com/?debug=1 -> use app.dev.js
答案 0 :(得分:1)
查询字符串仅出现在HTML文件的初始请求中。对JS文件的后续请求包含在src
标记的script
属性的值中。
您可以使用两个HTML文件,每个src
属性的值都不同,或者您可以使用sub_filter
directive更改src
属性的值作为HTML文件已交付。
例如:
root /path/to/my/project;
location = / {
if ($arg_debug) { rewrite ^ /debug.html last; }
index index.html;
}
location = /debug.html {
internal;
try_files /index.html =404;
sub_filter '<script src="app.min.js"></script>' '<script src="app.dev.js"></script>';
}
location / {
try_files $uri $uri/ =404;
}
答案 1 :(得分:0)
从https://serverfault.com/a/811981和@Richard Smith的技巧中,我找到了解决方案。
server {
server_name self-hosted.com;
listen 80;
root /path/to/my/project;
proxy_buffering off;
location / {
error_page 418 = @debug;
if ($query_string ~ debug=1) { return 418; }
try_files $uri $uri/ =404;
}
location @debug {
sub_filter "app.min" "app.dev";
try_files /index.html =500;
}
}