用于开发和生产的不同URL。 (重新加载静态内容)

时间:2014-07-08 04:33:30

标签: java spring url production-environment reloading

所以这是我的故事。

我正在开发一个spring web应用程序。静态内容(js,css,jsp)的重新加载被打破,并在以下主题中找到了解决方案:

Getting resources in VFrabric Server to deploy without causing container to reload

为了重新加载工作,我没有根URL'/'。所以我将其更改为'/ project'并重新加载。太好了!

然后是下一个问题。我有很多ajax请求'/ typeahead / searchUniversities /%QUERY',例如,这需要更改为'project / typeahead / searchUniversities /%QUERY'。当我将其上传到生产服务器时,我需要将其更改回'/ typeahead / searchUniversities /%QUERY'

因为'/ project'仅用于开发

所以我读到了关于配置文件的内容,但我不确定这是否可行。我可能过度了吗?

我还在考虑使用'$ {baseurl} / typeahead / searchUniversities /%QUERY'之类的东西,然后在生产前改变一个地方。但不知道该怎么做。

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

谢谢!

2 个答案:

答案 0 :(得分:2)

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

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

BTW:在JSP <%= application.getContextPath() %>中提供了没有任何额外标记库的上下文路径。

但请只使用有意义的相对路径,而不要使用“顶级”网址。

答案 1 :(得分:0)

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

e.g。

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