如何处理DEV和LIVE环境中的URL差异



我对Java的经验较少。目前在我的应用程序中,我所有的URL都设置为类似http://localhost:8080/cmt/content/3068fc93/edit.html 的内容

在LIVE上,我的url需要转到http://www.domain.com/content/3068fc93/edit.html

这是我的第一个java应用程序,我不想重新发明轮子。我希望能够使用绝对路径(没有域)(如/content/3068fc93.html)链接到页面。

更新

任何时候我做<a href='/content/edit.html'>Edit Content</a>,它都会在LIVE上工作,但在DEV上不工作,因为DEV需要额外的/cmt。如何在我的两个环境之间修复此问题?

您使用jstl标记作为:

<a href="<c:url value='/content/3068fc93.html'/>">Welcome</a>

其中"c"来自<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

更新

关于cmt部分,您应该在servlet映射上重写url或更改url参数

更新你得到的刺激:

<servlet-mapping>
    <servlet-name>web-servlet</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

在开发中,您必须具有:

<servlet-mapping>
    <servlet-name>web-servlet</servlet-name>
    <url-pattern>/cmt/*</url-pattern>
</servlet-mapping>

您只需使用Spring URL标记,以下是文档。

因此,对于您的案例:

<spring:url value="/content/{contentId}/edit.html">
   <spring:param name="contentId" value="3068fc93" />
</spring:url>

最新更新