У меня есть базовое приложение Spring Boot со стартером тимелеафа. (2.0.1.RELEASE)
Это структура проекта
Как видите, у меня есть html-страницы (test,test-exchange)
У меня есть один контроллер для доступа к этим двум страницам:
test.html and test-exchange.html страницы абсолютно одинаковые
Здесь у меня tagManager.js в следующем каталоге
/resources/static/js/tagManager.js
В test-exchange.html я не могу загрузить этот скрипт, но в test.html могу (я имею в виду, что в консоли разработчика я получаю 404 доступа к скрипту).
Что интересно, если я изменю конечную точку на test-exchange.html как этот
Скрипт загружен успешно. Как я понимаю, thymeleaf не позволяет иметь такую же строку в контроллере для достижения страницы.
Как исправить ???
Хорошо, я сделаю это в будущем, есть предложения по этой проблеме? :)




Это вызвано относительным отображением ваших файлов js. Страница под xxx/test загружается и пытается загрузить файл js с xxx/js/tagManager.js, но если вы находитесь по URL-адресу xxx/test/something, он попытается загрузить файл js с xxx/test/js/tagManager.js. Таким образом, вам понадобится отображение из корня вашего домена.
Вы можете добиться этого с помощью @{/js/tagManager.js} вместо js/tagManager.js.
Это выглядело бы так:
<script th:src = "@{/js/tagManager.js}"></script>
Если что-то неясно, не стесняйтесь спрашивать
Вы имеете в виду <script th: src = "$ {'/ js / tagManager.js'}"> </script> это?
@AlmasAbdrazak, да
@AlmasAbdrazak, но обратите внимание, что это с @ и без кавычек внутри фигурных скобок
Небольшое примечание для улучшения ваших вопросов: вставьте код в виде блоков кода вместо изображений. Заранее спасибо :)