【发布时间】:2015-05-04 13:59:12
【问题描述】:
近 3 周以来,我一直在网上搜索并研究如何解决此问题,但我找不到在本地 Windows 中使用 tomcat 7 在 Spring MVC 中提供静态文件的原因,但不在我们在 Linux(Ubuntu)上的服务器中。下面我描述了我的项目文件结构和所有相关文件:
web.xml:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/root-context.xml</param-value>
</context-param>
<listener>
<listener-class>com.bakuparkingaz.util.BakuParkingServletContext</listener-class>
</listener>
<servlet>
<servlet-name>loginServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/config/servlet-context.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>loginServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
</welcome-file-list>
app-context.xml:
<tx:annotation-driven />
<context:component-scan base-package="com.bakuparkingaz"/>
<context:property-placeholder location="classpath:db.properties" />
<mvc:resources mapping="/resources/**" location="/resources/"/>
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor" />
AdminController.java:
@Controller
public class AdminController {
/.
@RequestMapping(value = "/admin")
public String admin() {
return "resources/admin/index.html";
}
}
所以现在当我调用http://localhost:8080/admin 时,我得到了漂亮样式的页面,但在服务器上http://8.8.8.8/project/admin(我已将我的war 文件作为project.war 部署到tomcats webapp 文件夹)会导致一个丑陋的无样式html 页面。为什么我的静态文件无法在 linux 服务器上提供服务?
更新: admin/index.html:
<!DOCTYPE html>
<html lang="en">
<head>
<base href="/resources/admin/">
<meta charset="utf-8">
<title>BP Admin</title>
<meta name="description" content="">
<meta name="author" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="//fonts.googleapis.com/css?family=Raleway:400,300,600" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="css/normalize.css">
<link rel="stylesheet" href="css/skeleton.css">
<link rel="stylesheet" href="css/semantic.min.css">
<link rel="stylesheet" href="css/my.css">
<link rel="stylesheet" href="//cdn.datatables.net/1.10.4/css/jquery.dataTables.min.css">
<link rel="icon" type="image/png" href="images/favicon.png">
</head>
<body>
<div class="ui left vertical labeled icon menu sidebar" id="left-menu">
<a class="item">
<i class="home icon"></i>
Home
</a>
</div>
<div class="footer">
<div class="text center"><p>Copyright (c) 2015 - BakuParking</p> </div>
</div>
</div>
<script type="text/javascript" charset="utf8" src="//code.jquery.com/jquery-2.1.3.min.js"></script>
<script src="//cdn.datatables.net/1.10.4/js/jquery.dataTables.min.js" charset="utf-8"></script>
<script src="js/semantic.min.js"></script>
<script src="js/my.js"></script>
</body>
</html>
【问题讨论】:
-
上下文路径不同,也许您可以尝试在 index.html 的 中添加 <base> 标签。
-
谢谢,我现在正在按照你的建议做,但我认为这只是为了简单起见,我认为它不会解决问题。
标签: java spring spring-mvc tomcat