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

我有这个目录结构:

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') 

我的top.vm包括这些JS和CSS文件:

   

现在当我访问http://www.example.com:8080/index页面时,我看到JS和CSS文件被找到了。 但是当我访问http://www.example.com:8080/FolderA/restricted时 ,找不到JS和CSS文件。 当它在顶部我改变它时它起作用

但随后索引页面被破坏了。

我使用spring控制器返回适当的视图。 例如,以下内容返回索引页面:

 @RequestMapping(value = "/", method = RequestMethod.GET) public String home(Model model) { return "index"; } 

这会返回受限制的视图:

 @Controller @RequestMapping(value = "/FolderA") public class SomeController { @RequestMapping(value = "", method = RequestMethod.GET) public String secured(Model model) { return "FolderA/restricted"; } 

有关如何解决此问题的任何建议?

另外,在使用常规jsp文件时我也面临这个问题,但我设法使用修复它。 我不知道这如何解决速度问题。

那是因为您声明的资源是相对于用于访问视图的URL。 您必须将所有静态资源URL更改为绝对您可以使用标记执行此操作

改变这一点

  

 "> 

这应该在HTML中生成这样的东西

 ">  

注意但为了实现这一点,您应该将%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>到您的jsp中并将jst标记库包含到webapp中

编辑 – – –

对于JS和CSS文件中引用的路径,有一个解决方法。使用基本标记来定义HTML中需要使用的绝对路径标记