【发布时间】:2011-02-20 18:29:12
【问题描述】:
我是一名尝试学习 Web 开发的服务器端 Java 程序员,并且一直在尝试使用 Wicket、CSS、Tomcat、MySQL 和 Hibernate 以及 Maven 进行构建。我遇到了找不到 CSS 文件的问题,但我不确定是 Wicket 还是 Tomcat,甚至是我的托管服务提供商导致了问题。这是设置:
页面 LoginPage.html 的 HTML 包含以下内容:
<head>
<title wicket:id="pageTitle"></title>
<link wicket:id="stylesheet"/>
</head>
这会在相应的 LoginPage.java 代码中填写:
public LoginPage(final PageParameters parameters)
{
// Setup page
add(new StyleSheetReference("stylesheet",
AppUserPage.class, "default.css"));
我使用“mvn package”来创建一个“.war”文件。一旦我将此 .war 文件部署到我的托管网站,HTML 文件就可以很好地通过 Wicket 加载但没有应用 CSS。
如果我使用“查看源代码”,我会看到以下内容:
<head>
<title wicket:id="pageTitle">HR-Box Login</title>
<link wicket:id="stylesheet" rel="stylesheet" type="text/css"
href="resources/ca.svarb.hrbox.web.appuser.AppUserPage/default.css"/>
</head>
我认为关键是现在在 deafult.css 文件的 href 中添加了一个“资源”路径。奇怪的是,如果我将 .war 文件部署到本地默认 Tomcat6 安装或使用“mvn jetty:run”运行,这两者都可以正常工作 - 我可以加载“http://localhost:8080/mywebapp-1.0- SNAPSHOT/?wicket:bookmarkablePage=:ca.svarb.hrbox.web.login.LoginPage" 并且使用 CSS 文件渲染就好了。
我的问题:
- 如何添加此“资源”路径?我在 Wicket 配置中找不到任何告诉它将此添加到路径的内容。
- 默认的 Tomcat6 和 Jetty 安装是否具有使他们了解在“资源”路径中的何处查找文件的功能?我的托管服务提供商正在使用 Tomcat,但可能他们将默认配置更改为不自动映射此路径。
如果有帮助,应用程序的源代码在 sourceforge 上:
https://wicket-hr-box.svn.sourceforge.net/svnroot/wicket-hr-box/branches/mysql
在此处从 SVN 签出并使用“mvn jetty:run”应该可以构建和运行应用程序,并且 CSS 工作正常。
直播网站在这里:
【问题讨论】: