由于路径差异,未找到JS/CSS文件java、spring mvc和velocity

由于路径差异,未找到JS/CSS文件java、spring mvc和velocity,java,tomcat,spring-mvc,velocity,Java,Tomcat,Spring Mvc,Velocity,我有以下目录结构: webapp - resources - custom.js - base.css - WEB-INF - views - layout.vm - top.vm - footer.vm - index.vm - FolderA - restricted.vm 我的layout.vm是: #parse('top.vm') $screen_content #parse('footer.vm') My top.vm包括以

我有以下目录结构:

webapp
 - resources
   - custom.js
   - base.css
 - WEB-INF
 - views
   - layout.vm
   - top.vm
   - footer.vm
   - index.vm
   - FolderA
     - restricted.vm
我的layout.vm是:

#parse('top.vm')
$screen_content
#parse('footer.vm')
My top.vm包括以下JS和CSS文件:

<link href="resources/base.css" rel="stylesheet">
<script src="resources/custom.js"></script>
这将返回受限视图:

@Controller
@RequestMapping(value = "/FolderA")
public class SomeController {

    @RequestMapping(value = "", method = RequestMethod.GET)
    public String secured(Model model) {

        return "FolderA/restricted";
    }
关于如何解决这个问题,有什么建议吗


另一方面,我在使用常规jsp文件时也遇到了这个问题,但我还是设法用
解决了这个问题。我不知道如何在velocity中解决这个问题。

这是因为您声明的资源是相对于用于访问视图的url的。 您必须将所有静态资源URL更改为绝对URL 您可以使用

从此改变

<script src="resources/custom.js"></script>

我曾写过我在jsp中使用的代码,但由于某种原因它没有出现。我对如何在velocity中实现更感兴趣,因为我知道如何在jsp file.yes中实现。这就解决了问题。谢谢!只是好奇,您是否知道在服务器端执行此操作的其他方法?有一个替代方案,但是很粗糙,你必须将所有的JS和CSS内嵌到HTML中。很高兴我能帮助你。也请投票。干杯
<script src="resources/custom.js"></script>
<script src="<c:url value="/resources/custom.js"/>"></script>
<script src="<c:url value="http://www.example.com:8080/FolderA/resources/custom.js"/>">
</script>
<base href="http://www.example.com:8080/FolderA/">