所以这是我的故事。
我正在开发一个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'之类的东西,然后在生产前改变一个地方。但不知道该怎么做。
如果有人可以用一个如何做到这一点的例子来指导我,那就太好了。
谢谢!
答案 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
'