Wicket & CSS ресурсы
Я искал вокруг, и я не могу найти руководство манекена для добавления моего собственного CSS в проект веб-сайта Wicket. Но прежде чем я начну... Я довольно новичок в правильной разработке Java, поэтому, когда я говорю "Dummy's guide", я действительно это имею в виду! Простые и понятные объяснения для меня здесь очень ценятся!
Я начал с этого руководства здесь ( 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;
}
Затем я удалил css по умолчанию в Wicket в своем homepage.html и изменил его на ссылку на мою, как показано ниже:
<link rel="stylesheet" href="css/conor.css" type="text/css" />
Но моя страница не учитывает conor.css... Очевидно, я делаю что-то не так, но не могу найти пошаговое руководство для Java-манекена (иначе меня!).
Я прочитал такие вещи, как вам нужно установить веб-инструменты для затмения. Я понятия не имел, что мне это нужно или почему он будет инструктировать мои страницы использовать CSS.
Любая помощь очень ценится!
3 ответа
Пока Wicket анализирует разметку и пытается найти правильные ссылки, вы должны помочь Wicket понять вашу разметку.
В вашем случае вы пытаетесь связаться с ресурсом, который находится в пути к классам Java. Это отличается от корня веб-контекста (находится в src/main/webapp). Разница между ресурсами пути к классу и ресурсами веб-контекста заключается в том, что Wicket отвечает за доступ к ресурсам пути к классу и контролирует его, а ваш контейнер (т. Е. Jetty, tomcat, glassfish и т. Д.) Отвечает и контролирует доступ к ресурсам веб-контекста.
Например, когда ресурс находится в компетенции Wicket, мы можем выполнять с ним все виды операций, такие как подстановка переменных, сжатие, минимизация, агрегация. Эти вещи являются частью калитки.
Теперь о вашей проблеме, поскольку вы не сказали Wicket, что связанные ресурсы находятся под его контролем, Wicket предполагает, что вы хотите, чтобы контейнер обрабатывал их. Чтобы смягчить это, вы должны добавить <wicket:link>
пометить вокруг <link>
тег (s).
<head>
...
<wicket:link>
<link rel="stylesheet" href="css/conor.css" type="text/css" />
...
</wicket:link>
</head>
<wicket:link>
теги говорят Wicket искать вложенные ресурсы и пытаться разрешить их по пути классов Java.
В общем случае вы должны добавить свой CSS в проект /src/main/webapp/css, а затем к нему будет обращаться css/conor.css
Вы можете загрузить свои CSS-файлы на своей Java-странице калитки следующим образом:
@Override
public void renderHead(IHeaderResponse response) {
response.render(CssHeaderItem.forReference(new CssResourceReference(myCssFile.class, "myCssFile.css")));
}
Если в ваших проектах есть файлы css, вы можете загрузить их изначально.