我一直在四处寻找,我找不到将我自己的CSS添加到Wicket网站项目的虚拟指南。但在我开始之前......我对正确的java开发相当新,所以当我说“Dummy的指南”时,我的意思是真的!对我这里简单明了的解释非常感谢!
我在这里开始使用本指南(http://wicket.apache.org/start/quickstart.html),并且运行正常。接下来,我想添加自己的CSS并开始搞乱它。而且我无处可逃。主要是因为我不知道如何在java中做到这一点(我来自C#/ asp.net背景)。
无论如何,那些了解Apache Wicket的人都会知道这一点,但快速入门的来源会在如下project/src/main/java/com/xyz
我认为我可以做的是在这里添加一个CSS文件夹......所以我创建了一个示例CSS,我把它粘在这里:
project/src/main/java/com/xyz/css/conor.css
(containing something real simple like the following)
h2 {
font-family: tahoma;
}
然后我在homepage.html中删除了Wicket默认css并将其更改为引用我的如下:
<link rel="stylesheet" href="css/conor.css" type="text/css" />
但是我的页面没有注意到conor.css ...显然我做错了什么,但是找不到java假人(也就是我!)的分步指南。
我已经阅读过你需要为eclipse安装web工具的内容。我不知道这对我有什么用处,或者为什么它会指示我的页面使用CSS。
非常感谢任何帮助!
答案 0 :(得分:17)
当Wicket解析标记并试图找到正确的链接时,你必须帮助Wicket理解你的标记。
在您的情况下,您尝试链接到位于Java类路径中的资源。这与Web上下文根(位于src / main / webapp中)不同。类路径资源和Web上下文资源之间的区别在于Wicket负责并控制对类路径资源的访问,并且您的容器(即jetty,tomcat,glassfish等)负责和控制访问Web上下文资源。
例如,当资源属于Wicket的范围时,我们可以用它做各种事情,例如变量替换,压缩,缩小,聚合。这些都是Wicket的一部分。
现在问题就在眼前,因为你没有告诉Wicket链接的资源在它的控制之下,Wicket认为你希望容器能够处理它们。要缓解此问题,您应在<wicket:link>
标记周围添加<link>
标记。
<head>
...
<wicket:link>
<link rel="stylesheet" href="css/conor.css" type="text/css" />
...
</wicket:link>
</head>
<wicket:link>
标记告诉Wicket查找所附资源并尝试在Java类路径上解析它们。
答案 1 :(得分:3)
一般来说,你应该在project / src / main / webapp / css中添加你的css然后它将被css / conor.css访问
答案 2 :(得分:2)
您可以在您的wicket java页面中加载您的css文件:
@Override
public void renderHead(IHeaderResponse response) {
response.render(CssHeaderItem.forReference(new CssResourceReference(myCssFile.class, "myCssFile.css")));
}
如果项目中有css文件,最初可以加载。