Spring MVC JSP 无法定位 Javascript 或 CSS

2024-04-17

这个问题似乎已经被问过几次了,但是在审查了太多次之后,我仍然看到这个问题。

我的 Spring MVC 项目中的 .jsp 无法找到任何 .css 或 .js 文件,即使它们在战争中并且给定的文件路径是正确的。

根据我的配置,我看到两个错误。第一个是:

WARNING: No mapping found for HTTP request with URI [/waypoint/css/bootstrap.min.css] in DispatcherServlet with name 'waypoint'

请注意,我的控制器已被访问,并且我看到了该页面,只是没有任何格式或 JavaScript。

我通过以下配置看到此错误:

web.xml

<servlet-mapping>
    <servlet-name>waypoint</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

waypoint-servlet.xml

<bean id="viewResolver"
    class="org.springframework.web.servlet.view.InternalResourceViewResolver">

    <property name="prefix">
        <value>/WEB-INF/pages/</value>
    </property>
    <property name="suffix">
        <value>.jsp</value>
    </property>
</bean>

文件结构:

WEB-INF
| - css
|   ` - all .css files
| - js
|   ` - you guessed it...
| - pages
|   ` - all .jsp files
| - waypoint-servlet.xml
` - web.xml

我读过很多其他帖子,使用以下方法解决了这个问题mvc:resource tag.

当我包括mvc:resource标签,我看到我的 .jsp 出现 404 错误。即使我将 servlet 映射更改为/*, /**, /<some-name>/, and /<some-name>/*.

我还尝试将静态文件移到 WEB-INF 文件夹之外:

| - resources
|  | - css
|  |   ` css...
|  | - js
|      ` js...
| - WEB-INF

正如我提到的,我尝试了许多不同的映射组合mvc:resource标签,适用于上述两种文件结构。一些例子包括:

<mvc:resources mapping="waypoint/resources/css/**" location="/resources/css/" />
<mvc:resources mapping="resources/css/**" location="/resources/css/" />
<mvc:resources mapping="css/**" location="/resources/css/" />
<mvc:resources mapping="css/**" location="WEB-INF/css/" />
<mvc:resources mapping="css/**" location="css/" />

我也在 .jsp 端尝试了上述方法和以下内容的组合:

<link href="classpath:/resources/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="../css/bootstrap.min.css" rel="stylesheet" type="text/css">
<link href="<c:url value="../resources/css/bootstrap.min.css"/>" rel="stylesheet" type="text/css" />
<link href="<c:url value="../css/bootstrap.min.css"/>" rel="stylesheet" type="text/css" />

以前有没有人经历过这种情况可以提供帮助?这将不胜感激。如果您需要任何其他信息,请告诉我。

Thanks.

SOLUTION

我能够通过将 *.css 和 *.js 的 servlet 映射添加到默认 servlet 来解决此问题:

<servlet-mapping>
    <servlet-name>waypoint</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.js</url-pattern>
</servlet-mapping>

这需要删除<mvc:resource>标签。我还需要使用resource/css/目录之外的WEB-INF文件夹。我在JSP中引用了js和css文件,如下所示:

<link href="<c:url value="/resources/css/bootstrap.min.css"/>" rel="stylesheet" type="text/css" />

谢谢阅读!


我不知道为什么<mvc:resources>标签在您的情况下不起作用,因为它应该从 spring 3.2.0 开始工作。将以下行添加到您的web.xml,这些是不稳定网址的常见问题

<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>/images/*</url-pattern>
</servlet-mapping>

您需要将文件放置在 web-inf 之外,以使其对拦截的请求可见。

A nice tutorial http://www.mkyong.com/spring-mvc/spring-mvc-how-to-include-js-or-css-files-in-a-jsp-page/ here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring MVC JSP 无法定位 Javascript 或 CSS 的相关文章

随机推荐

  • 如何查找 pthread 是否有挂起的取消请求

    我想知道是否对于一个线程 pthread cancel是否已被调用 我不想使用一些表并维护它 有没有可用的库函数 我不想使用一些取消点函数来取消线程 如果有任何挂起的取消请求 这些取消点函数就会取消线程 我只想知道是否有任何挂起的取消请求
  • 使用 zlib 解压缩 PNG

    如何使用 zlib 库解压缩 PNG 文件 我需要在 gcc 编译器下使用 C 读取 PNG 文件 为什么不使用libpng http www libpng org pub png libpng html PNG 文件格式相当简单 但有许多
  • 以编程方式设置 logback.xml 路径

    我知道我可以像这样设置 logback xml 路径 将默认配置文件的位置指定为系统属性 您可以使用名为 logback configurationFile 的系统属性指定默认配置文件的位置 该属性的值可以是 URL 类路径上的资源或应用程
  • 7.02之前的ABAP中如何编码JSON

    正如霍斯特 凯勒在他的著作中提到的ABAP 和 JSON http scn sap com people horst keller blog 2013 01 07 abap and json帖子 ABAP 原生支持 7 02 和 7 03
  • 估计 64 位 Java 中最大安全 JVM 堆大小

    在分析存在一些问题的 64 位 Java 应用程序的过程中 我注意到分析器本身 YourKit 正在使用真正大量的内存 我在 YourKit 启动脚本中得到的是 JAVA HEAP LIMIT Xmx3072m XX PermSize 25
  • 使用 Symfony 的 ACL 时,使用 JOIN 查询还是 IN 数组查询更好?

    这个问题建立在以下讨论的基础上 如何使用 Symfony ACL 过滤我的 Doctrine 查询 https stackoverflow com questions 14858642 how to filter my doctrine q
  • ExpandableListAdapter 在什么条件下调用 getChildView()

    在我的应用程序中 getChildView 在我里面可扩展列表适配器当适配器返回正确的子计数时 当getChildrenCount 叫做 我的问题是 为了让 ExpandableListAdapter 膨胀其子项 需要满足哪些条件 当组和子
  • 将背景图像放置在距右侧 1em 处?

    据我所知 不可能将 CSS 背景图像放置在距任何块的右边框 1em 处 也不可能放置图像距底部 1em 处 以下代码将背景图像放置在距左侧 1em 和距顶部 2em 的位置 div class foo style background ur
  • Visual Studio 2013 上下文菜单仅在 Web 应用程序项目中缓慢

    我最近为了一个新项目从 VS 2010 升级到 VS 2013 我发现当右键单击 Web 应用程序项目中的文件夹 而不是单个文件 时 加载上下文菜单大约需要 2 秒 解决方案中的其他十多个非 Web 项目不存在此性能问题 此外 在那个缓慢的
  • ElementHost 内 WPF 控件的呈现问题

    我有一个 WinForms 控件 里面有一个TableLayoutPanel其中持有多个ElementHosts和每个ElementHost包含一个 WPF 控件 一切正常 除非控件的大小大于窗口和ScrollBar有没有 当我向下滚动时
  • 在 RoR 视图中获取 {{attribute}} {{message}}

    登录 1 个错误禁止保存此 model 以下字段存在问题 属性 消息 这是查看代码 h1 Login h1 br br br br br br
  • jQuery 使用什么正则表达式进行电子邮件验证?

    Jquery 可以验证电子邮件地址 http docs jquery com Plugins Validation http docs jquery com Plugins Validation jQuery 使用什么正则表达式 如果有 进
  • 直接通过 SSH 进入 docker 容器

    我有一些 docker 容器 现在我想通过 ssh 访问其中一个 这是工作我通过 ssh 连接到 docker 容器 但现在我遇到的问题是我不知道哪个用户可以访问这个容器 我已经对主机上的两个用户 网络和根 进行了尝试 但它们不起作用 知道
  • 如何使用 exec() 启动和停止 PHP 开发服务器

    如何使用 exec 函数启动和停止 PHP 开发服务器 我需要这样做才能自动化我的 BDD 测试 这将停止我的脚本的执行 echo exec php S localhost 8000 所以我需要一种方法从 PHP 启动服务器并能够继续执行我
  • 实体框架中的第二个 Self-To-Self 关系

    假设我们有一个域类 public class Incident Key public virtual int IncidentId get set Display Name Parent Incident public virtual In
  • 当我使用非共享运行时构建 Monodroid 项目时,获取编码失败

    我正在尝试在我的 Monodroid 应用程序中使用 DotNetZip 库 当我启用共享运行时构建选项时 一切似乎都工作正常 当我禁用共享运行时时 该行 static System Text Encoding ibm437 System
  • Angular 5 反应形式 - 单选按钮组

    我有 2 个单选按钮 我正在使用反应式表单 并且我已在组件中添加了表单控件 我面临的问题是 name 属性必须与 formControlName 相同 当我将名称属性设置为相同时 我只能选择 1 个单选按钮 永远无法取消选择并选择另一个 只
  • Flutter 出现 The method 'findRenderObject' was called on null

    最近有一个需求 需要测量条子里的子元素到顶部的距离 但是总是提示findrendereobject为空 我什至无法尝试 widgetsbinding instance addpostframecallback控制台错误 调度程序库捕获异常
  • 在 RxJava 2 中展平列表

    我已经使用 RxJava 1 一段时间了 但我想看看 RxJava 2 在 RxJava 1 中 我可以发出列表中的每个项目 如下所示 List
  • Spring MVC JSP 无法定位 Javascript 或 CSS

    这个问题似乎已经被问过几次了 但是在审查了太多次之后 我仍然看到这个问题 我的 Spring MVC 项目中的 jsp 无法找到任何 css 或 js 文件 即使它们在战争中并且给定的文件路径是正确的 根据我的配置 我看到两个错误 第一个是