Проблема с типом mime css с jsp и tomcat

У меня проблема с моим проектом jsp, запущенным на tomcat. Веб-сайт выглядит как файл css как html и не загружает его. Ресурсы извлекаются правильно, потому что с помощью inspect я вижу код 200 ok для файлов css. Я запускаю свой проект на Tomcat 8.0. Код следующий:

web.xml

<?xml version = "1.0" encoding = "UTF-8"?>
<!-- webapp/WEB-INF/web.xml -->
<web-app xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns = "http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation = "http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id = "WebApp_ID" version = "3.1">
  <display-name>Project</display-name>
  <mime-mapping>
    <extension>css</extension>
    <mime-type>text/css</mime-type>
  </mime-mapping>
  <welcome-file-list>
    <welcome-file>/</welcome-file>
  </welcome-file-list>
</web-app>

Домашняя страницаСервлет

package webapp;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@WebServlet(urlPatterns = {"/", "/Homepage"})
public class HomepageServlet extends HttpServlet {

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws IOException, ServletException {
        request.setAttribute("name", request.getParameter("name"));
        request.getRequestDispatcher("/views/Homepage.jsp").forward(request, response);       
    }
}

Homepage.jsp

<html>
  <head>
    <title>Project!!</title>
    <link href = "css/styles.css" rel = "stylesheet" type = "text/css">
  </head>
  <body>
    <div class = "navbar-menu">
      <div class = "navbar-menu-row">
        <div class = "navbar-menu-first-row">
          <img src = "images/logo.png" alt = "">
        </div>
      </div>
    </div>
  </body>
</html>

Структура проекта следующая:

https://image.ibb.co/k9vj5K/Immagine.png

Что не так?

Заранее спасибо.

Вы должны проверить, работает ли браузер с mime-типом файла css. Стандартное поведение - не добавлять эту информацию с помощью tomcat. Вы можете проксировать это через http-сервер apache или создать фильтр, который добавит тип mime к файлам css и js и поместит его в заголовки ответов. Старые браузеры не так строго проверяли, но это может вызвать проблемы с безопасностью, если некоторые вещи будут интерпретироваться только по имени файла.

Kamil Leis 25.08.2018 21:16

В web.xml вы указали тип пантомимы текст / csss. Вы хотели вместо этого указать текст / css?

skomisa 26.08.2018 03:56

Я пытаюсь использовать многие браузеры, такие как Firefox, Chrome и IE, но ничего. Кроме того, я пытаюсь использовать GlassFish Server 4.1 вместо Tomcat, но результат тот же. Я также исправляю text / ccs вместо text / csss, проблема не решена. Я думаю использовать python flask вместо jsp, потому что я схожу с ума!

Raul 26.08.2018 20:22

@Raul [1] Но текст / ccs тоже недействителен! Установите его на текст / css. [2] Для ясности, ваше приложение работает нормально, за исключением того, что ваша таблица стилей CSS не используется? [3] Кроме того, ваш путь к файлу CSS может быть неправильным, хотя я не знаю, как вы структурировали свой проект. Посмотрите, поможет ли вам вопрос SO как загрузить файл CSS в jsp. [4] В качестве отдельной проблемы обратите внимание, что при ответе на комментарии вы должны начинать свой комментарий с @ {userId} (как я сделал для этого комментария), чтобы другой пользователь был уведомлен о вашем ответе.

skomisa 28.08.2018 19:25

@skomisa [1] опечатка извините! я установил текст / CSS. [2] приложение работает нормально, не загружаются только css и js. [3] Я пробую много разных решений, но работает только <% @ include file = "css / style.css"%>. Это не то, что я хотел бы, потому что я должен помещать файлы в папку WEB-INF. [4] Спасибо за ваше предложение;)

Raul 29.08.2018 20:28

@ Рауль ОК. Пожалуйста, обновите свой пост (вместо того, чтобы помещать информацию в комментарий), чтобы указать структуру вашего проекта, особенно в отношении ваших файлов css и js. Я не вижу упоминания о файлах js в вашем вопросе.

skomisa 29.08.2018 20:52

@skomisa. Я обновил структуру проекта в посте. Спасибо.

Raul 02.09.2018 18:52

@Raul Структура вашего проекта показывает, что ваш JSP находится в WEB-INF / views / Homepage.jsp, но сервлет перенаправляет на /views/Homepage.jsp, что неверно. Вместо этого перенаправление должно быть на WEB-INF / views / Homepage.jsp, поэтому я не понимаю, как опубликованный вами код может работать для этой структуры проекта. Вы уверены, что все исходные файлы и структура проекта, которые вы опубликовали, обновлены, или я чего-то не понимаю?

skomisa 03.09.2018 08:16

@skomisa Извините, skomisa, но до и после того, как я создал этот пост, я пробовал много разных решений, таких как изменение структуры проекта, использование относительного пути для файла css и т. д.

Raul 04.09.2018 11:47
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
2
9
1 952
0

Другие вопросы по теме