Я пытаюсь включить jquery.js и javascript.js файлы на моей странице, как это было предложено в previous question путем пропускания его через класс Servlet, как:Включите jquery.js и javascript.js на странице
response.getDocument().body().appendChild(new DataNode("<script src=\"" + themeUri
+ "/js/nativeinit.js\" type=\"text/javascript\"></script>",""));
response.getDocument().body().appendChild(new DataNode("<script src=\"" + themeUri
+ "/js/jquery.min.js\" type=\"text/javascript\"></script>",""));
Когда я вижу консоли в браузере, хотя я вижу сообщения для обоих файлов:
Resource interpreted as Script but transferred with MIME type text/html: "http:8080/uri/js/nativeinit.js". myhost/:47
Resource interpreted as Script but transferred with MIME type text/html: "http:8080/uri/js/jquery.min.js". myhost/:47
И потом:
Uncaught SyntaxError: Unexpected token < nativeinit.js:1
Uncaught SyntaxError: Unexpected token < jquery.min.js:1
Что не так, и он не может читать их как скрипт? Почему это странное сообщение неожиданного токена? Что мне следует изменить/добавить?
Update:
Я также добавил в мой файл web.xml:
<mime-mapping>
<extension>js</extension>
<mime-type>application/javascript</mime-type>
</mime-mapping>
но проблема с тем же сообщением остается. Я знаю, что примечание @Javascript
является рекомендуемым способом в vaadin 7, но я думаю, что он должен работать и на общем пути. Я не задал тип содержимого в классе Servlet. Я могу использовать там только класс BootstrapPageRespone
от https://vaadin.com/api/, который не предоставляет методы от ServletResponse
. В противном случае я бы установил его также программно.
Я добавил контент-тип: text/javascript в MIME-TYPES в конфигурации Tomcat, но это не решило проблему. Во всяком случае, я пробовал то же самое в другом проекте, и он работает. Что-то не так хорошо с тем, как я определяю файлы в Servlet, я думаю. – arjacsoh
ok, так что теперь, когда ваш браузер запрашивает ex. ваш /js/jquery.min.js, он получает ответ с типом content: text/html, установленным в заголовке? – betatester07
убедитесь, что вы не устанавливаете контент-текст в text/html в сервлет, этот процесс запрашивает ваши сценарии. – betatester07