用JFinal框架自带的main方法运行正常的情况下,用tomcat发布项目出现css样式表引用错误和资源找不到问题。

来源:互联网 发布:uitableview优化方案 编辑:程序博客网 时间:2024/05/16 02:03

用JFinal框架写了个demo,引用了bootstrap的css样式表。在eclipse中开发时采用的是利用JFinal框架中自带的一个方法用main方法启动的。上下文链接清晰,但是部署到tomcat上时出现了找不到资源问题和css样式显示不出来的问题。经过分析之后,发现是相对路径的问题。


打开网址localhost:8092/进行测试的时候一切运行正常效果如下图

用main方法实现时

    但是当把部署tomcat上的时候,发现样式引用不了。显示如下图

部署到tomcat时,css样式失效

    输入用户名和密码登录后显示找不到路径。显示如下图

找不到资源

    究其原因是因为部署到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后,网站就运行正常了

强烈建议在所有用到路径的地方都要加上${contextPath}




0 1
原创粉丝点击