我有一个简单的应用程序,我在本地(在Tomcat中)以及Google App Engine和Heroku上部署。JSTL URL标记在Heroku上无效
该应用程序使用JSTL标签,并且除了URL标签(<c:url value="/someUrl"/>
)之外,它们在所有部署中都可以正常工作,只有在Heroku上,该标签预先添加了一个额外的正斜杠,从而将所有内容都拧紧。这就是我的意思是:
<c:url value='/laundryLists/search.htm'/>
在我本地的Tomcat,在应用程序部署有“testApp”的背景下剪断将genreate在页面下面的字符串上面的代码:
“/ testApp/laundryLists/search.htm“
这是正确的。
在我的GAE部署的应用程序,它坐落在地址testApp.appspot.com,上面的代码片段生成:
“/laundryLists/search.htm”
这是正确的,因为这里的应用上下文是 “/”(根)
以我的Heroku版本,其被部署在 “testApp.herokuapp.com”
完全相同的代码生成:
“//laundryLists/search.htm”(注意两个斜杠开头)
这是不对的,因为如果放在一个链接,如
<a href="<c:url value='/laundryLists/search.htm'/>">whatever</a>
链接的URL将是:
http://laundryLists/search.htm
这显然是错误的。
值得一提的是,其他JSTL标签(例如“forEach”)在Heroku中工作正常。
所以我的问题是,为什么在Heroku上发生这种情况,我该如何解决它(除了硬编码的URL)?