您的位置:首页 > 运维架构 > Tomcat

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

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

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



    但是当把部署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后,网站就运行正常了。

强烈建议在所有用到路径的地方都要加上${contextPath}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐