.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?
или это из-за ваадинской структуры?

Я всего лишь новичок, пытающийся изучить фреймворк JSP и vaadin.

2 3

2 ответа:

Я наконец нашел причину этой проблемы. Я только что починил паутину.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>

, который транслируется в книге фреймворк Vaadin, раздел 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, чтобы разрешить или игнорировать ресурсы.