Файлы.js и.css загружаются как текст /html на моей странице JSP.

Когда я загружаю свою страницу jsp, вложенные файлы css и js отображаются в формате text/html. Я заметил это из браузера Chrome, где я мог видеть это сообщение об ошибке

"Ресурс интерпретируется как скрипт, но передается с MIME-типом text/html"

Я указал тип MIME в web.xml следующим образом:

    <mime-mapping>    
        <extension>js</extension>        
        <mime-type>application/javascript</mime-type>        
    </mime-mapping>

    <mime-mapping>    
        <extension>css</extension>        
        <mime-type>text/css</mime-type>        
    </mime-mapping>
    <mime-mapping>    
        <extension>jpg</extension>        
        <mime-type>image/jpeg</mime-type>        
    </mime-mapping>

Сервер, на котором я запускаю свое приложение, - Apache Tomcat 7. Я создал этот файл JSP внутри проекта Vaadin.

Мои вопросы: нужно ли мне менять тип Mime где-то еще в конфигурации Tomcat? Есть ли какие-либо ограничения для включения файлов CSS и JS в страницу JSP?
или это из-за фреймворка Vaadin?

Я только начинающий, пытающийся изучить JSP и vaadin Framework.

2 ответа

Решение

Я наконец нашел причину этой проблемы. Я только что исправил web.xml, изменив отображение URL по умолчанию

например. от значения по умолчанию, как показано ниже

<servlet-mapping>
    <servlet-name>My Application</servlet-name>
    <url-pattern>/*</url-pattern>
</servlet-mapping>

в

<servlet-mapping>
    <servlet-name>My Application</servlet-name>
    <url-pattern>/home/*</url-pattern>
</servlet-mapping>

После изменения этого я все еще получил ошибку, которую я исправил, добавив

<servlet-mapping>
<servlet-name>My Application</servlet-name>
<url-pattern>/VAADIN/*</url-pattern>
</servlet-mapping>

который описан в Книге Ваадина, раздел 4.8 https://vaadin.com/book/-/page/application.environment.html

В моем случае у меня есть фильтр в моем web.xml это фильтрует все. (Перенаправляет на определенную страницу на основе IP-адреса.)

<filter-mapping>
    <filter-name>RedirectFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

При таком сопоставлении фильтров все запросы (включая изображения, таблицы стилей, сценарии и т. Д.) Проходят через фильтр. Вы можете исправить это, удалив filter-mapping от твоего web.xml или проверка логики в filter-class разрешать или игнорировать ресурсы.

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