Nginx proxy 转向 ASP web server 没有 CSS 和部分 Javascript 文件

2016-11-18 12:18:04 +08:00
 xianlin

我有一个 Nginx 代理服务器, http://example.com

我还有一个 ASP.NET 网页服务器, http://asp_server_ip 可以正常访问

ASP 服务器的 index.html 中有这么几行:

<script src="/bundles/modernizr?v=wBEWDufH_8Md-Pbioxomt90vm6tJN2Pyy9u9zHtWsPo1"></script>
<link href="/Content/css?v=0CO7wbdAKgh6VVE0St8oKqJBcB4RpFIbcQS63jv2JjY1" rel="stylesheet"/>
...
...
<script src="/bundles/MsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81" type="text/javascript"></script>
<script src="Scripts/jquery-1.10.2.min.js" type="text/javascript"></script>
<script src="Scripts/bootstrap.min.js" type="text/javascript"></script>
<script src="Scripts/respond.min.js" type="text/javascript"></script>
<script src="/bundles/WebFormsJs?v=AAyiAYwMfvmwjNSBfIMrBAqfU5exDukMVhrRuZ-PDU01" type="text/javascript"></script>

请注意"src=xxx"有的没有 backward slash "/".(比如” Scripts/")

在这种情况下,我的 Nginx 配置是:

    location / {
        proxy_pass http://WORDPRESS_SERVER_IP;
    }

    location /asp/ {
        proxy_pass http://ASP_NET_SERVER_IP/;
    }

现在如果我访问"http://example.com/asp",只有部分 Javascript 文件被下载(比如"Scripts/"路径下的文件可以下载),但是"/bundles/" 和 "/Content/"下的文件全部下载不了,也就是说, Nginx 只能正确地识别没有斜线的路径"Scripts"。

"Scripts/jquery-1.10.2.min.js" 可以变为

http://example.com/asp/Scripts/jquery-1.10.2.min.js

但是 ”/bundles/MsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81 “ 变为

http://example.com/bundles/MsAjaxJs?v=c42ygB2U07n37m_Sfa8ZbLGVu4Rr2gsBo7MvUEnJeZ81

ASP 代码是我的同事写的,他告诉我上面的那些 HTML 是 ASP 自动生成的,那些斜线的有无是程序自动加的,他还不知道怎么改。

如果不改 ASP 代码?改 Nginx 配置可以解决吗?加 rewrite 规则么?谢谢大家!

1620 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/321452

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX