我在网站开发/部署过程中遇到了一个有点烦人的问题;当我在服务器上本地工作时,我的程序的地址是 localhost:8080/MYSERV/...,而当我部署它时,地址是 www.mysite.com/...
我希望网页中的所有链接都硬编码到部署版本。我读过一些 hosts 文件教程,但我仍然不知道如何将对 www.mysite.com/ 的请求本地重定向到我的本地服务器进行开发。如果有人能告诉我一个显而易见的单行代码,我将不胜感激。提前谢谢!
答案1
内部链接不应使用绝对 URL,因为当站点部署在不同主机名下时,需要重新配置它们(正如您所发现的),并且在引入反向代理时会变得困难。链接最好相对于当前位置(以便站点可以轻松地部署在任意顶级路径下),或者如果不可行,则相对于根路径(即/images/blah
)。使用绝对 URL 的唯一真正原因是在 HTTP 和 HTTPS 之间进行链接(这可能在 Web 服务器配置中更容易实现)。
答案2
您的 hosts 文件通常会覆盖 DNS 条目,但它的用途通常是解决除您描述的问题之外的问题。在代码中使用绝对路径不是一个好主意,因此我建议您开始使用相对路径。
回答您的问题,主机文件每行包含 2 个条目,首先是 IP 地址,然后是主机名。例如:
161.114.221.123 www.mysite.com
如果您从浏览器请求 www.mysite.com,则不会进行 DNS 查找,而是浏览器会直接从 161.114.221.123 请求 www.mysite.com。因此,对于您而言,hosts 文件条目应如下所示:
127.0.0.1 www.mysite.com
我认为此设置的唯一问题是,当您尝试从浏览器请求 www.mysite.com 时,它将联系端口 80 上的远程服务器,而从您提供的示例来看,您的本地主机网络服务器实际上正在监听端口 8080。您需要重新配置本地网络服务器以监听端口 80,并设置相应的 vhosts 文件,以便它响应对 www.mysite.com 的请求。