为什么这个徽标不是由Wicket呈现的?

时间:2011-02-06 23:55:12

标签: java css wicket

我有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 />

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

1 个答案:

答案 0 :(得分:5)

您引用的是本地驱动器路径(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中。 / p>