【问题标题】:JS/ CSS files not found due to path differences java, spring mvc, velocity由于路径差异 java、spring mvc、velocity 找不到 JS/CSS 文件
【发布时间】:2013-02-27 08:06:30
【问题描述】:

我有这个目录结构:

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 文件:

<link href="resources/base.css" rel="stylesheet">
<script src="resources/custom.js"></script>

现在,当我访问 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 文件时也遇到了这个问题,但我设法使用&lt;c:url ..&gt; 修复了它。我不知道这如何以速度解决。

【问题讨论】:

    标签: java tomcat spring-mvc velocity


    【解决方案1】:

    那是因为您声明的资源与用于访问视图的 url 相关。 您必须将所有静态资源 url 更改为绝对 你可以使用 tag来做到这一点

    从此改变

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

    <script src="<c:url value="/resources/custom.js"/>"></script>
    

    这应该在 HTML 中生成类似这样的内容

    <script src="<c:url value="http://www.example.com:8080/FolderA/resources/custom.js"/>">
    </script>
    

    注意 但是为了这个工作你应该添加 %@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %&gt; 到你的jsp 并将jst tag library 包含在 webapp 中

    编辑------

    对于 JS 和 CSS 文件中引用的路径,有一个变通方法。使用base tag 来 定义HTML中需要使用的绝对路径标签

    <base href="http://www.example.com:8080/FolderA/">
    

    【讨论】:

    • 我写过我在 jsp 中使用了 但由于某种原因它没有显示出来。我对如何在速度上完成更感兴趣,因为我知道如何在 jsp 文件中完成。
    • 是的。这解决了这个问题。非常感谢!只是好奇,您是否知道在服务器端执行此操作的任何其他方式? 上的等价物?
    • 还有一个替代方案,但那很粗略,您必须将所有 JS 和 CSS 内嵌在 HTML 中。很高兴我能帮助你。请点赞,干杯
    猜你喜欢
    • 2011-02-26
    • 2017-05-19
    • 2014-05-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    • 2020-06-05
    • 2020-08-11
    • 2016-07-05
    相关资源
    最近更新 更多