我们有一个在本地运行的 Web 应用程序,因此在许多 jsp 中我都引用了类似 http://localhost:8080/MyApp/index.html 的内容.我们现在想创建一个部署,但是浏览许多不同语言(html、jsp、xml 等)的文件并手动将本地主机 URL 更改为实际部署 URL 似乎很不方便 - 比如 192.168.0.4:8080/MyApp/index.html.
人们在这里做什么?理想情况下,我希望选择同时使用这两个 URL,这样我就可以维护一个本地版本的 webapp 在我的机器上运行,并且还有一个已部署的机器在我的网络上运行。一个想法是使用 SVN 中的分支/标签作为部署,并仅在该分支中更改 URL。这可能适用于开发 + 部署服务器,但是否有更通用的方法来抽象 Web 应用程序中使用的 URL?
如有任何想法,我们将不胜感激!
最佳答案
不要对域名或上下文路径进行硬编码。
动态解决它们。此信息可以从 HttpServletRequest
获得。 .例如
String base = request.getRequestURL().toString().replace(request.getRequestURI().substring(1), request.getContextPath());
// ...
使用方法如下
<a href="${base}/index.html">
或者使用 HTML <base>
标签。另见 Browser can't access/find relative resources like CSS, images and links when calling a Servlet which forwards to a JSP一些提示。
关于svn - 如何提取用于部署的 Tomcat URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7000202/