1

所以这是我的故事。

我正在开发一个 Spring Web 应用程序。静态内容(js、css、jsp)的重载被打破,在以下线程中找到了解决方案:

在不导致容器重新加载的情况下获取 VFrabric Server 中的资源进行部署

为了重新加载工作,我不能拥有根 URL '/'。因此,我将其更改为“/project”,并且我的重新加载工作正常。伟大的!

但是接下来的问题来了。例如,我对“/typeahead/searchUniversities/%QUERY”有很多 ajax 请求,这需要更改为“project/typeahead/searchUniversities/%QUERY”。当我将它上传到生产服务器时,我需要将它改回 '/typeahead/searchUniversities/%QUERY'

因为 '/project' 只是为了开发

因此,我阅读了有关配置文件的信息,但我不确定这是否是要走的路。我可能做得过火了?

我还想有类似 '${baseurl}/typeahead/searchUniversities/%QUERY' 的东西,然后在生产前在一个地方进行更改。但不知道如何做到这一点。

如果有人可以通过一个示例来指导我如何做到这一点,那就太好了。

谢谢!

4

2 回答 2

2

编辑:添加另一种更直接的方法来获取 JSP 中的上下文路径

url 在 webapp 中永远不应该是静态的:上下文路径是在部署时确定的,而不是在编译时确定的。如果你使用spring标签库,你可以使用<spring:url>标签,如果不是JSTL<c:url>标签。两者都会自动为您添加上下文路径。

顺便说一句:在 JSP 中<%= application.getContextPath() %>给出了没有任何附加标记库的上下文路径。

但请仅使用有意义的相对路径,切勿使用“顶级”URL。

于 2014-07-08T11:59:55.380 回答
0

您的应用程序不应依赖于它所部署的上下文路径。解决此特定问题的一种方法是在您的 ajax 请求中使用相对路径,

例如

' typeahead/searchUniversities/%QUERY' 而不是 ' /typeahead/searchUniversities/%QUERY'

于 2014-07-08T11:33:28.827 回答