在调度程序 servlet 中映射资源(Resin 服务器)
Mapping Resources in dispatcher servlet (Resin Server)
这是我的dispacter-servlet.xml文件。当我在 resin pro 4.0.36 上部署项目时,它会加载我的索引页面和内容,但无法加载存储在 staticresources 文件夹
下的 css 文件和图像
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.dogears" />
<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>
<import resource="classpath:beans.xml"/>
<mvc:resources mapping="/resources/**" location="/staticresources/" />
<mvc:annotation-driven />
谁能告诉我如何映射我的静态资源文件夹,以便每当请求是模式 /resources/* 时,它都会将请求重定向到静态资源文件夹。 staticresources 文件夹位于 MyspringProject/src/main/webapps 目录.
我认为您需要将 staticresources 目录映射为根目录。在 Eclipse 中是 "Source Folder" 而在 IntelliJ 中是 "Resources Root".
根据您的情况参考以下帮助文档IDE:
IntelliJ:https://www.jetbrains.com/webstorm/help/configuring-folders-within-a-content-root.html
假设您的 项目目录 结构类似于
- src
- main
- webapp
- resources
- css
- abc.css
- images
- xyz.jpg
& 您的 .html
或 .jsp
页面位于如下目录中
- webapp
- index.jsp
- pages
- welcome.jsp
然后您可以在 index.jsp
页面中 添加 link 到您的资源 URL BaseURL/index.jsp
<link href="resources/css/abc.css" rel="stylesheet" type="text/css" />
<body>
<img src="resources/images/xyz.jpg" alt="" style="width:100px;height:100px" />
</body>
& 到 welcome.jsp
与 URL BaseURL/pages/welcome.jsp
as
<link href="../resources/css/abc.css" rel="stylesheet" type="text/css" />
<body>
<img src="../resources/images/xyz.jpg" alt="" style="width:100px;height:100px" />
</body>
希望对您有所帮助。
我终于找到了解决办法。我已经在 resin 目录的 webapps 文件夹中部署了我的 spring webapp。
我发现 <mvc:resource />
映射标签 不工作 当您在 resin 服务器 [=24] 上部署 spring 应用程序时=] 而不是 tomcat.
因此我解决了这个问题,首先为我的项目创建一个 war 文件,然后在桌面上提取 war 文件,然后将 war 文件中的所有内容放在resin 目录的 webapps/root(而不是 webapps 文件夹)文件夹。然后在我的索引页面中,我使用 JSTL TAG 来包含外部样式表。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<link rel="stylesheet" type="text/css" href="<c:url value="/staticresources/externalcss.css"/>">
</head>
<body>
<h2 class="text_style">Hello World!</h2>
</body>
</html>
有效!!!
这是我的dispacter-servlet.xml文件。当我在 resin pro 4.0.36 上部署项目时,它会加载我的索引页面和内容,但无法加载存储在 staticresources 文件夹
下的 css 文件和图像<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<context:component-scan base-package="com.dogears" />
<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>
<import resource="classpath:beans.xml"/>
<mvc:resources mapping="/resources/**" location="/staticresources/" />
<mvc:annotation-driven />
谁能告诉我如何映射我的静态资源文件夹,以便每当请求是模式 /resources/* 时,它都会将请求重定向到静态资源文件夹。 staticresources 文件夹位于 MyspringProject/src/main/webapps 目录.
我认为您需要将 staticresources 目录映射为根目录。在 Eclipse 中是 "Source Folder" 而在 IntelliJ 中是 "Resources Root".
根据您的情况参考以下帮助文档IDE:
IntelliJ:https://www.jetbrains.com/webstorm/help/configuring-folders-within-a-content-root.html
假设您的 项目目录 结构类似于
- src
- main
- webapp
- resources
- css
- abc.css
- images
- xyz.jpg
& 您的 .html
或 .jsp
页面位于如下目录中
- webapp
- index.jsp
- pages
- welcome.jsp
然后您可以在 index.jsp
页面中 添加 link 到您的资源 URL BaseURL/index.jsp
<link href="resources/css/abc.css" rel="stylesheet" type="text/css" />
<body>
<img src="resources/images/xyz.jpg" alt="" style="width:100px;height:100px" />
</body>
& 到 welcome.jsp
与 URL BaseURL/pages/welcome.jsp
as
<link href="../resources/css/abc.css" rel="stylesheet" type="text/css" />
<body>
<img src="../resources/images/xyz.jpg" alt="" style="width:100px;height:100px" />
</body>
希望对您有所帮助。
我终于找到了解决办法。我已经在 resin 目录的 webapps 文件夹中部署了我的 spring webapp。
我发现 <mvc:resource />
映射标签 不工作 当您在 resin 服务器 [=24] 上部署 spring 应用程序时=] 而不是 tomcat.
因此我解决了这个问题,首先为我的项目创建一个 war 文件,然后在桌面上提取 war 文件,然后将 war 文件中的所有内容放在resin 目录的 webapps/root(而不是 webapps 文件夹)文件夹。然后在我的索引页面中,我使用 JSTL TAG 来包含外部样式表。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<html>
<head>
<link rel="stylesheet" type="text/css" href="<c:url value="/staticresources/externalcss.css"/>">
</head>
<body>
<h2 class="text_style">Hello World!</h2>
</body>
</html>
有效!!!