Не удалось загрузить файл javascript из-за неправильного MIME-типа (Spring Boot 2, Thymeleaf, Bootstrap) - PullRequest
0 голосов
/ 24 сентября 2019

У меня ошибка, и я не смог найти никакого решения, поэтому я надеюсь, что кто-нибудь сможет мне помочь или хотя бы объяснить, что мне делать или откуда это исходит.На заднем плане.Я пишу небольшое весеннее загрузочное приложение для образовательных целей и учусь работать с тимилифом и начальной загрузкой.Я использовал оформление макета тимелина, чтобы создать хороший шаблон макета, и пока он работает нормально.На одной странице я хочу открыть всплывающее окно для ввода данных пользователем, и поэтому я использовал jquery.Помимо интеграции с bootstrap / webjars мне пришлось написать дополнительный файл javascript и поместить его в папку ресурсов (resources / static / js / main.js).Когда я тестирую приложение (как локальный jar со встроенным tomcat), я вижу страницу, но получаю сообщение об ошибке, поэтому файл main.js не загружается.

Ошибка выглядит следующим образом:

Das Skript von "http://localhost:8080/static/js/main.js" wurde geladen, obwohl sein MIME-Typ ("application/json") kein für JavaScript gültiger MIME-Typ ist.

Engl.: The script of "http://localhost:8080/static/js/main.js" was loaded, even though its mime type (“application/json”) is not a valid javascript mime type.

Всплывающее окно не открывается, поэтому я предполагаю, что javascript-файл не работает.Интеграция выглядит как

<head>
<script type="text/javascript" src="../../static/js/main.js"></script>
...
</head>

Я также пытался

<head>
<script type="text/javascript" src="../static/js/main.js"></script>
...
</head>

Оба не работали.Кто-нибудь знает, что не так или где искать для получения более подробной информации?

Вот файл javascript

$(document).ready(function () {

$('.table .btn_edit').on('click', function (event) {

    $('.staff_form #popup').modal();
});
});

Used versions:
Spring boot 2.1.7;
Thymleaf layout dialect 2.4.1;
Bootstrap 4.3.1  --> webjars;
JQuery 3.4.1     --> webjars

Спасибо заранее.

Редактировать:

По запросу, скриншот структуры папки папки ресурсов.Ресурсы / templates / user / index.html должны открыть файл javascript.

folder structure of resources folder

1 Ответ

0 голосов
/ 24 сентября 2019

Попробуйте это для своего файла main.js, чтобы тимилеф разрешал контекст:

<script th:src="@{/js/main.js}"></script>

И если он не работает "из коробки", добавьте его в любой класс, который вы используете для расширения вашегоwebconfig или добавьте сам класс, если у вас его нет:

@Configuration
@EnableWebMvc
@ComponentScan
public class WebConfig implements WebMvcConfigurer    {

    private static final String[] CLASSPATH_RESOURCE_LOCATIONS = {
            "classpath:/META-INF/resources/", "classpath:/resources/",
            "classpath:/static/", "classpath:/public/" };

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
            .addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...