Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.227.190.93] |
|
Сообщ.
#1
,
|
|
|
Пишу на сервлетах под Tomcat, используя шаблоны HTML-страниц Velocity (apache.org), так вот не понимаю как подключить внешнюю css =(
Когда пишу в ссылке http://localhost/main.css (-это мой апаческий сервак, и css лежит в корне, то всё работает) если же пишу http://localhost:8080/main.css или просто main.css то ничего не подключается =( Я уже положил эту css в каджую папку в webapps, и всё равно ничего не пашет, может надо что то прописать в web.xml?! Заранее благодарен, Илья. |
Сообщ.
#2
,
|
|
|
Так, оказалось что Velocity тут совсем не причем, насколько я понимаю проблема состоит вот в этом:
Когда браузер пытается подгрузить CSS из файла на сервера он обращается по такой линке http://localhost:8080/main.css Сервер же знает, что ему надо сначала обратиться к web.xml в папке WEB-INF, и он делает этот запрос, а сервер выдает ему не css а чущь какую то, то сам текст сорца с сервлетом, то Exceptions. Так вот наверное надо что то в нем(web.xml) прописать на случай ccs, но что никак понять не могу?! Нид хелп... |
Сообщ.
#3
,
|
|
|
Насколько я помню, статическое содержимое в web.xml прописывать не надо.
Как ты прописываешь в коде путь к css файлу? И какой средой разработки пользуешься, если пользуешься? Я правда программирую используя Java Beans + JSP, использую IDE IntelliJ IDEA. Но не думаю что тут существуют принципиальные различия. Нужный мне css я поместил в WEB-INF и в jsp я обращаюсь к нему так: <link rel="stylesheet" href="/WEB-INF/tree_stylesheet.css" type="text/css"> При этом обращение идет в контексте приложения - пути настраиваются в IDEA. Все работает. ЗЫ: Тэкс... ага - в вопросе была внешняя css в корне... Что ж, пока посоветую попробовать так - а потом уже разбираться с внешней. Помнюю в каком то проекте (без использования IDE) к внешним файлам даже указывались пути вроде ../../bla-bla.css |
Сообщ.
#4
,
|
|
|
Цитата Vilia @ Так, оказалось что Velocity тут совсем не причем, насколько я понимаю проблема состоит вот в этом: Твоя проблема не коим образом не затрагивает Tomcat и тому подобное. Дело в программировании HTML, css подключаеться, обычно внутри тега <head>, строчкой <link href='/styles.css' rel='stylesheet' type='text/css'> где href адрес откуда брать файл. можешь писать абсолютную ссылку типа http:// и далее, а можешь относительную, тоесть либо с символа / это означает корень для сайта, или папку ROOT в которой находиться контент сайта (там же есть папка WEB-INF с web.xml и сервлетами) либо сразу название, что означает, что файл лежит в тойже директории, что и html документ. |
Сообщ.
#5
,
|
|
|
Сенкс, проблему в итоге решил немного другим способом, может не совсем корректным, но как по-другому не знаю:
Раньше у меня в <servlet>....</servlet> было прописано что для любого параментра после http://localhost:8080/ использовать класс V(усл. обозначение) и так получалось что томкат почему то отправлял запрос вида http://localhost:8080/, или http://localhost:8080/main.css на обработку этому классу. Теперь пока дал на обработку этому классу только http://localhost:8080/start а всё остальное как придется, css стал подгружаться, но это не хороший, далеко не хороший способ А хтмл я знаю прекрасно, проблемма была не в этом =( |
Сообщ.
#6
,
|
|
|
а покажи свой web.xml
|
Сообщ.
#7
,
|
|
|
Он находится в webapps/ROOT/WEB-INF
Сейчас он такой(так работает http://localhost:8080/start - стартовая страница) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>CMS</display-name> <description>CMS</description> <!-- servlets --> <servlet> <servlet-name>start</servlet-name> <servlet-class>test.View</servlet-class> <init-param> <param-name>org.apache.velocity.properties</param-name> <param-value>/conf/velocity.properties</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>start</servlet-name> <url-pattern>/start</url-pattern> </servlet-mapping> </web-app> А был такой, (http://localhost:8080/ - стартовая страница) <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> <display-name>CMS</display-name> <description>CMS</description> <!-- servlets --> <servlet> <servlet-name></servlet-name> <servlet-class>test.View</servlet-class> <init-param> <param-name>org.apache.velocity.properties</param-name> <param-value>/conf/velocity.properties</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name></servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app> |
Сообщ.
#8
,
|
|
|
стало все нормально, сервлет теперь обрабатыват только start. Если надо раширить его реализацию может передавать параметрами после символа "?" или методом POST.
|
Сообщ.
#9
,
|
|
|
Нет, всё хорошо, только мне НЕЛЬЗЯ использовать JSP и пользователь же не лох, возьмет да наберет вместо http://localhost:8080/start http://localhost:8080/ и получит структуру дерикторий webapps/ROOT, а мне это нах не надо.....
В этом у меня и состояла основная проблема.. Что когда без start он все гребет под этот класс, а когда старт или ещё что то, то в противном случае отображается корень дериктории... Я уже подумывал просто написать такой кусок сервлета, который будет засовывать в стандартный output сервлета файл main.css, конечно это должен делать сервер, но как заставить его это сделать на знаю... =( |
Сообщ.
#10
,
|
|
|
Цитата Vilia @ Нет, всё хорошо, только мне НЕЛЬЗЯ использовать JSP и пользователь же не лох, возьмет да наберет вместо http://localhost:8080/start http://localhost:8080/ и получит структуру дерикторий webapps/ROOT, а мне это нах не надо..... для этого есть файл index.html. или другой по умолчанию настроить можно в %CATALINA_HOME%/conf/web.xml CATALINA_HOME Это откуда у тебя томкат стартует. там есть <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> если напишешь start то все будет пучком, либо можно создать index.html |
Сообщ.
#11
,
|
|
|
Да....
Заработало, Спасибо огромное Добавлено 234242342 |
Сообщ.
#12
,
Сообщение отклонено: dark_barker -
|
Сообщ.
#13
,
Сообщение отклонено: dark_barker -
|
Сообщ.
#14
,
Сообщение отклонено: dark_barker -
|
Сообщ.
#15
,
|
|
|
Ну а она точно на Tomcat-е работает? Если нет -- некропосты следует удалить, как рекламу.
|