用JFinal框架写了个demo,引用了bootstrap的css样式表。在eclipse中开发时采用的是利用JFinal框架中自带的一个方法用main方法启动的。上下文连接清晰,可是部署到tomcat上时出现了找不到资源问题和css样式显示不出来的问题。通过分析以后,发现是相对路径的问题。css
打开网址localhost:8092/进行测试的时候一切运行正常效果以下图 web
可是当把部署tomcat上的时候,发现样式引用不了。显示以下图bootstrap
输入用户名和密码登陆后显示找不到路径。显示以下图tomcat
究其缘由是由于部署到tomcat后,根目录发生改变。因此采用main方法测试web网站的朋友,当你部署到tomcat或者是jetty时要注意你的路径是否采用了jfinal提供的上下文路径me.add(new ContextPathHandler("contextPath")。框架
/** *采用main方法测试时的代码,如下为代码。 */ --------------------------------------------------------------------------------------------------------------------------------------- public static void main(String args[]) { JFinal.start("WebRoot", 8092, "/", 5); } --------------------------------------------------------------------------------------------------------------------------------------- <!--这里是css样式引用代码--> <link href="/css/bootstrap.min.css" rel="stylesheet"> <script src="/js/bootstrap.min.js"></script> <!--这里是css样式引用代码--> --------------------------------------------------------------------------------------------------------------------------------------- -/** *这里为登陆时表单的提交路径 */ <form class="form-horizontal" action="/login" method="post"> ---------------------------------------------------------------------------------------------------------------------------------------- /** *当你部署到tomcat上时,代码应该添加上下文代码,如下为修改后的代码 */ <!--这里是css样式引用代码--> <link href="${contextPath}/css/bootstrap.min.css" rel="stylesheet"> <script src="${contextPath}/js/bootstrap.min.js"></script> <!--这里是css样式引用代码--> ---------------------------------------------------------------------------------------------------------------------------------------- /** *这里为登陆时表单的提交路径*${contextPath}为freemaker的语法。 */ <form class="formhorizontal"action="${contextPath}/login"method="post"> ---------------------------------------------------------------------------------------------------------------------------------------- /** *在JFinal框架的config配置文件中要在handler中添加一条代码 */ public void configHandler(Handlers me) { me.add(new ContextPathHandler("contextPath")) };//contextPath为你设置的上下文路径} ----------------------------------------------------------------------------------------------------------------------------------------
将相对路径中添加${contextPath}/后部署在tomcat后,网站就运行正常了。eclipse
强烈建议在全部用到路径的地方都要加上${contextPath}
post