На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Следующие правила действуют в данном разделе в дополнение к общим Правилам Форума
1. Здесь обсуждается Java, а не JavaScript! Огромная просьба, по вопросам, связанным с JavaScript, SSI и им подобным обращаться в раздел WWW Masters или, на крайний случай, в Многошум.
2. В случае, если у вас возникают сомнения, в каком разделе следует задать свой вопрос, помещайте его в корневую ветку форума Java. В случае необходимости, он будет перемещен модераторами (с сохранением ссылки в корневом разделе).

3. Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы. Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
4. Не рекомендуется создавать несколько несвязанных вопросов в одной теме. Пожалуйста, создавайте по одной теме на вопрос.
Модераторы: dark_barker, wind
  
> Tomcat+CSS , Как подгрузить css
    Пишу на сервлетах под Tomcat, используя шаблоны HTML-страниц Velocity (apache.org), так вот не понимаю как подключить внешнюю css =(
    Когда пишу в ссылке
    http://localhost/main.css (-это мой апаческий сервак, и css лежит в корне, то всё работает)
    если же пишу http://localhost:8080/main.css или просто main.css то ничего не подключается =(
    Я уже положил эту css в каджую папку в webapps, и всё равно ничего не пашет, может надо что то прописать в web.xml?!

    Заранее благодарен, Илья.
    Сообщение отредактировано: Vilia -
      Так, оказалось что Velocity тут совсем не причем, насколько я понимаю проблема состоит вот в этом:

      Когда браузер пытается подгрузить CSS из файла на сервера он обращается по такой линке
      http://localhost:8080/main.css
      Сервер же знает, что ему надо сначала обратиться к web.xml в папке WEB-INF, и он делает этот запрос, а сервер выдает ему не css а чущь какую то, то сам текст сорца с сервлетом, то Exceptions.

      Так вот наверное надо что то в нем(web.xml) прописать на случай ccs, но что никак понять не могу?! Нид хелп...
        Насколько я помню, статическое содержимое в web.xml прописывать не надо.
        Как ты прописываешь в коде путь к css файлу?
        И какой средой разработки пользуешься, если пользуешься?

        Я правда программирую используя Java Beans + JSP, использую IDE IntelliJ IDEA. Но не думаю что тут существуют принципиальные различия. Нужный мне css я поместил в WEB-INF и в jsp я обращаюсь к нему так:

        ExpandedWrap disabled
          <link rel="stylesheet" href="/WEB-INF/tree_stylesheet.css" type="text/css">

        При этом обращение идет в контексте приложения - пути настраиваются в IDEA.
        Все работает.

        ЗЫ: Тэкс... ага - в вопросе была внешняя css в корне... Что ж, пока посоветую попробовать так - а потом уже разбираться с внешней. Помнюю в каком то проекте (без использования IDE) к внешним файлам даже указывались пути вроде ../../bla-bla.css
        Сообщение отредактировано: Evil J -
          Цитата Vilia @
          Так, оказалось что Velocity тут совсем не причем, насколько я понимаю проблема состоит вот в этом:

          Твоя проблема не коим образом не затрагивает Tomcat и тому подобное.
          Дело в программировании HTML, css подключаеться, обычно внутри тега <head>, строчкой
          ExpandedWrap disabled
            <link href='/styles.css' rel='stylesheet' type='text/css'>

          где href адрес откуда брать файл. можешь писать абсолютную ссылку типа http:// и далее, а можешь относительную, тоесть либо с символа / это означает корень для сайта, или папку ROOT в которой находиться контент сайта (там же есть папка WEB-INF с web.xml и сервлетами) либо сразу название, что означает, что файл лежит в тойже директории, что и html документ.
            Сенкс, проблему в итоге решил немного другим способом, может не совсем корректным, но как по-другому не знаю:
            Раньше у меня в <servlet>....</servlet> было прописано что для любого параментра после http://localhost:8080/
            использовать класс V(усл. обозначение) и так получалось что томкат почему то отправлял запрос вида
            http://localhost:8080/, или http://localhost:8080/main.css на обработку этому классу. Теперь пока дал на обработку этому классу только http://localhost:8080/start а всё остальное как придется, css стал подгружаться, но это не хороший, далеко не хороший способ >:(

            А хтмл я знаю прекрасно, проблемма была не в этом =(
              а покажи свой web.xml
                Он находится в webapps/ROOT/WEB-INF
                Сейчас он такой(так работает http://localhost:8080/start - стартовая страница)
                ExpandedWrap disabled
                  <?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/ - стартовая страница)

                ExpandedWrap disabled
                  <?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>
                  стало все нормально, сервлет теперь обрабатыват только start. Если надо раширить его реализацию может передавать параметрами после символа "?" или методом POST.
                    Нет, всё хорошо, только мне НЕЛЬЗЯ использовать JSP и пользователь же не лох, возьмет да наберет вместо http://localhost:8080/start http://localhost:8080/ и получит структуру дерикторий webapps/ROOT, а мне это нах не надо.....
                    В этом у меня и состояла основная проблема..
                    Что когда без start он все гребет под этот класс, а когда старт или ещё что то, то в противном случае отображается корень дериктории...
                    Я уже подумывал просто написать такой кусок сервлета, который будет засовывать в стандартный output сервлета файл main.css, конечно это должен делать сервер, но как заставить его это сделать на знаю... =(
                      Цитата Vilia @
                      Нет, всё хорошо, только мне НЕЛЬЗЯ использовать JSP и пользователь же не лох, возьмет да наберет вместо http://localhost:8080/start http://localhost:8080/ и получит структуру дерикторий webapps/ROOT, а мне это нах не надо.....

                      для этого есть файл index.html. или другой по умолчанию настроить можно в %CATALINA_HOME%/conf/web.xml

                      CATALINA_HOME Это откуда у тебя томкат стартует.

                      там есть
                      ExpandedWrap disabled
                            <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
                        Да....
                        Заработало, Спасибо огромное

                        Добавлено
                        234242342
                                Ну а она точно на Tomcat-е работает? Если нет -- некропосты следует удалить, как рекламу.
                                0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                                0 пользователей:


                                Рейтинг@Mail.ru
                                [ Script execution time: 0,0391 ]   [ 16 queries used ]   [ Generated: 28.03.24, 08:49 GMT ]