好的,在阅读了上述答案和其他一些 SO 帖子后,我得出了两个解决方案:
我正在使用 Spring MVC 并且我DispatcherServlet的被映射到 root /。这意味着对任何东西的任何请求都将通过它,但我没有控制器来提供资源文件。您可以做的是将 映射DispatcherServlet到类似/app/*. 然后所有常规网址都喜欢
http:\\localhost:8080\ContextRoot\users
将在
http:\\localhost:8080\ContextRoot\app\users.
然后你可以去
http:\\localhost:8080\ContextRoot\static\js\file.js
并且您将获得 Apache 服务器(或您正在使用的任何东西)的资源文件。
DispatcherServletSpring 的人可能认为这是一个问题,并使用仍然映射的 at制定了自己的解决方案/。在您的servlet.xml文件中,您必须添加
<mvc:resources location = "/static/" mapping = "/static/**" />
您的文件夹位于文件夹static下webapp。这个标签告诉 Spring MVC 有一个特殊的处理程序来处理/static/. 你还需要
<mvc:annotation-driven>
否则,您的 Controllers 处理程序方法将与前一个标记中的处理程序混淆,并且没有任何效果(至少它不适合我)。
我尝试了这两种方法,它们都有效,但我选择了第二种方法,因为我的视图中的锚点已映射到根目录,我不想全部修复。使您的链接相对,人!