【问题标题】:Why is this logo not being rendered by Wicket?为什么 Wicket 不呈现此徽标?
【发布时间】:2011-02-06 23:55:12
【问题描述】:

我有一个BasePage.java(还有一个BasePage.html)。我的基本页面基本上是由mycssmenu.com 制作的CSS 菜单(我不擅长CSS)。我想将我大学的徽标添加到基本页面:

        <ul>
            <li><a href="MainPage.html"wicket:id="home">Home</a></li>
            <li><a href="LecturerPage.html"wicket:id="lect">Lecturer Page</a></li>
            <li><a href="StudentPage.html"wicket:id="stud">Student Page</a></li>
        </ul>
    </li>
    <li><span class="qmdivider qmdividery" ></span></li>
    <li><a class="qmparent" href="javascript:void(0)">About</a>
        <ul>
            <li><a href="About.html"wicket:id="about">About</a></li>
        </ul>
    </li>
    <li class="qmclear">&nbsp;</li>
</ul>
<script type="text/javascript">qm_create(0,false,0,500,false,false,false,false,false</script>
</div>
<div id= "body">
    <img src="C:\Users\Eliezer Shindler\Desktop\cityunilogo.jpg"alt="City Logo"/>
    <wicket:child />

简而言之,当我在网络浏览器中打开页面时会显示 City 徽标,但在运行 Wicket 时不会显示。为什么,以及如何使它与 Wicket 一起使用?我对 Wicket 很陌生。

【问题讨论】:

    标签: java css wicket


    【解决方案1】:

    您正在引用本地驱动器路径 (C:\...),它:a) 在您的计算机之外无法工作; b) 即使它有效,由于安全限制,浏览器也不会显示它(如果原始页面也从磁盘加载,则只会打开本地文件)。

    不要,永远,在 Web 应用程序中使用本地机器路径。千万不要,这是邪恶的,你的后代会被诅咒7代。

    如果您希望在 Web 应用程序中显示图像,请将其移动到应用程序上下文或类路径中的文件夹中,并让您的页面指向那里。

    假设你的项目布局是这样的:

    myapp/
        src/
            myapp/
                MyApplication.java
                MyPage.java
                MyPage.html
        web/
            WEB-INF/
                web.xml
    

    您可以创建一个myapp/web/images 文件夹,然后将您的图像(例如logo.png)复制到其中:

    myapp/
        src/
            myapp/
                MyApplication.java
                MyPage.java
                MyPage.html
        web/
            images/
                logo.png
            WEB-INF/
                web.xml
    

    MyPage.html 中,标记会是这样的:

    <img src="images/logo.png">
    

    另一种方法是从 Java 代码添加图像,将图像/资源与 .java 文件并排保存:

    myapp/
        src/
            myapp/
                images/
                    logo.png
                MyApplication.java
                MyPage.java
                MyPage.html
        web/
            WEB-INF/
                web.xml
    

    那么,MyPage.html 中的声明将是

    <img wicket:id="logo">
    

    MyPage.java 将包含

    add(new Image("logo", new PackageResourceReference(HomePage.class, "images/logo.png")));
    

    意味着logo.png 文件位于“images”文件夹中,相对于HomePage 类'包。

    类似的方法(使用标题贡献而不是 Image)可用于 CSS 和 javascript 文件。

    这更加冗长,但非常有用,特别是如果您将可重用组件模块化到一个库中,因为您可以将所有资源(图像、css 和 javascript 文件等)捆绑到一个 jar 中。

    【讨论】:

    • @tetsou-谢谢-我是第一种方法-请参阅下面关于创建图像文件夹(在“上下文”中)并将 jpg 放入其中的答案
    猜你喜欢
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 2010-12-23
    • 2021-07-31
    • 2017-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多