我有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"> </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很新。
答案 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>