这个问题似乎被问了几次,但在回顾了太多的问题之后,我仍然看到了这个问题。
我的SpringMVC项目中的.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>
航路点服务.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
标签
当我包括
mvc:资源
标记,我看到.jsp的404个错误。即使我将servlet映射更改为
/*
,
/**
,
/<some-name>/
和
/<some-name>/*
.
我还尝试将静态文件移出WEB-INF文件夹:
| - resources
| | - css
| | ` css...
| | - js
| ` js...
| - WEB-INF
正如我提到的,我为
mvc:资源
标记,用于上述两种文件结构。一些示例包括:
<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" />
以前有没有人经历过这种情况,可能会伸出援手?非常感谢。如果你需要任何其他信息,请告诉我。
谢谢
溶液
我能够通过将*.css和*.js的servlet映射添加到fefaultservlet来解决这个问题:
<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" />
感谢阅读!