我有一个网络应用程序,它有一个目录结构,如:
/com/myproject/MyPage.java
/com/myproject/MyPage.html
/com/myproject/resources/styles.css
/com/myproject/resources/bg.png
在MyPage.html
我的代码如下:
<wicket:link>
<link rel="stylesheet" type="text/css" href="resources/styles.css"/>
</wicket:link>
CSS文件包含url(bg.png)
等引用。一切都很好。
然而,我的应用程序现在变得如此之大(到目前为止我有大约15页),我不想将所有页面和HTML放在一个目录中。但是,所有页面都会引用“styles.css”之类的内容。所以我想为各种页面组创建各种包,但仍然有“styles.css”,以及它引用的图像等,在我的源代码树中只存在一次。
我想做点什么:
/com/myproject/usermanagement/UserManagementStartPage.java
/com/myproject/resources/styles.css
(目的是在所有页面之间共享)<wicket:link>
引用CSS,例如href="../resources/styles.css"
href="/com/myproject/resources/styles.css
(当我将页面从一个包移动到更深/更浅的包时,我不必更改..
的数量。)我在思考正确的方向吗?你会如何处理这个问题?
答案 0 :(得分:2)
Wicket处理相对于Web应用程序根目录的CSS文件链接。这样,将标记文件移动到更高或更深的位置并不重要。如上所述,还可以包括来自Java代码的样式表 in this article。使用标记继承,您只需将样式表添加到基页,并让您的真实页面继承它。
答案 1 :(得分:2)
您需要以下内容:
<wicket:link>
<link rel="stylesheet" type="text/css" href="$up$/resources/styles.css"/>
</wicket:link>
org.apache.wicket.settings.IResourceSettings.setParentFolderPlaceholder( “$高达$”)
这样,网址将显示为/com/myproject/usermanagement/$up$/resources/styles.css,Wicket将为您解析父文件夹。