STS Spring MVC: как включить файл JS в JSP - PullRequest
5 голосов
/ 30 октября 2011

Я установил SpringSource Tool Suite 2.8.0.Я пытаюсь включить файл JS в JSP, используя шаблон Spring MVC в качестве отправной точки.Мой JSP выглядит так:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ page session="false" %>
<html>
<head>
    <title>Home</title>
    <script type="text/javascript" src="/a.js"></script>
</head>
<body>
    Hello world!  
</body>
</html>

a.js находится в каталоге src \ main \ resources и выглядит так:

window.alert("A");

В результате получается "Hello world!"печатается без предупреждения: - (

Я пытался поместить файл JS в разные места, изменив src на / без "/", и даже добавив отображение сервлета в файл web.xml для использования "default "servlet for" * .js ". Кажется, ничего не работает.

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 30 октября 2011

Советую поместить эти файлы js в папку webapp . (Я обычно помещаю их в webapp / resources / js )

И чтобы сделать этот путь доступным, я использую тег mvc: resources :

Этот тег разрешает статические запросы ресурсов после определенного URL шаблон, который будет обслуживаться ResourceHttpRequestHandler из любого из список мест размещения ресурсов. Это обеспечивает удобный способ подачи статические ресурсы из других мест, кроме корня веб-приложения, включая места на пути к классам. Свойство периода кэширования может быть используется для установки заголовков истечения срока действия в будущем (1 год рекомендация инструментов оптимизации, таких как Page Speed ​​и YSlow), так что они будут более эффективно использованы клиентом. Обработчик также правильно оценивает заголовок Last-Modified (если имеется), чтобы код состояния 304 будет возвращен соответствующим образом, избегая ненужные издержки для ресурсов, которые уже кэшированы клиент. Например, чтобы обслуживать запросы ресурсов с шаблоном URL / resources / ** из каталога общедоступных ресурсов в сети корень приложения, тег будет использоваться следующим образом:

<mvc:resources mapping="/resources/**" location="/public-resources/"/>

Источник: Источник весны

3 голосов
/ 30 октября 2011

включен ли файл js в ваш файл .war?Я обычно помещаю свои js и css в src / main / webapp.что-то вроде src / main / webapp / js и src / main / webapp / css.

Во-вторых, вы можете ссылаться на него соответствующим образом, используя c: url, который позаботится о размещении контекста приложения и прочее.

<script type="text/javascript" src="<c:url value="/a.js" />" />

Вы можете использовать инструменты разработчика Firebug или Chrome, чтобы узнать, получаете ли вы 404 для a.js, и посмотреть, какой путь он на самом деле запрашивает.

...