首页 > 解决方案 > 在 NGINX 后面时所有网站链接都断开

问题描述

我在服务器 A 上有一个网站 w1,在服务器 BI 上安装了 NGINX。

从我的开发机器 CI 可以导航到 b.uk/w1 并且可以看到我的主页,物理上位于 A 上。但是,当我单击链接转到页面 p1 时,该链接没有我的应用程序部分 w1,在网址。

我期待 b.uk/w1/p1

我得到 b.uk/p1

这是 NGINX 的事情吗?还是我需要重写我的应用程序,以便所有链接(包括 .js 和 .css)都在它们前面加上 /w1?这看起来很丑陋。如果它的 w2 在其他地方怎么办?因此,我是否需要按服务器应用程序进行版本控制?

有没有办法让网站将 /w1 视为域的一部分?我想这取决于我用来构建它的东西?

也许我缺少一个 nginx 设置。目前我的位置块非常简单:

location /w1/ {
  proxy_pass http://A/;
}

谢谢

标签: nginx

解决方案


我找不到实现这一目标的方法。解决方法如下: https ://www.billbogaiv.com/posts/net-core-hosted-on-subdirectories-in-nginx 当然,这对我来说是解决方案,因为我正在编写的应用程序是这样做是使用 asp .net 核心。对于其他情况,它肯定会有所不同。总体思路是这样的;

asp .net 核心有一些功能可以添加到它生成的相对链接,对于 a 和链接(css)标签中的 hrefs,img 和脚本标签中的 src 等,您指定的 nginx 配置位置块中的 url 的位置部分它在某些配置中(application.json 或在您的应用程序启动逻辑中硬编码)。

如果您选择的框架本身不支持此功能,您将在其中构建它。


推荐阅读