【问题标题】:How does the "resources" context path work together in Wicket + Tomcat installation“资源”上下文路径如何在 Wicket + Tomcat 安装中协同工作
【发布时间】: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 文件渲染就好了。

我的问题:

  1. 如何添加此“资源”路径?我在 Wicket 配置中找不到任何告诉它将此添加到路径的内容。
  2. 默认的 Tomcat6 和 Jetty 安装是否具有使他们了解在“资源”路径中的何处查找文件的功能?我的托管服务提供商正在使用 Tomcat,但可能他们将默认配置更改为不自动映射此路径。

如果有帮助,应用程序的源代码在 sourceforge 上:

https://wicket-hr-box.svn.sourceforge.net/svnroot/wicket-hr-box/branches/mysql

在此处从 SVN 签出并使用“mvn jetty:run”应该可以构建和运行应用程序,并且 CSS 工作正常。

直播网站在这里:

http://svarb.org

【问题讨论】:

    标签: java tomcat wicket


    【解决方案1】:

    “resources”是 Wicket 中的一个特殊路径。这样,Wicket 就知道它必须使用一个特殊的 RequestTarget 来处理这个资源请求。

    【讨论】:

    • 感谢您的回复。你知道这是在哪里配置的吗?我想检查一下我的托管服务提供商是否关闭了此功能。
    • 在 Wicket 1.4 中是不可能的。 IN=n 1.5 参见 IMapperContext。您的应用程序可以设置它,而不是托管服务提供商。
    猜你喜欢
    • 2013-01-22
    • 2016-08-13
    • 2019-02-09
    • 1970-01-01
    • 1970-01-01
    • 2019-08-22
    • 2011-01-02
    • 2013-05-03
    • 1970-01-01
    相关资源
    最近更新 更多