Ошибка HTTP 404 с сервером Jetty - PullRequest
       65

Ошибка HTTP 404 с сервером Jetty

1 голос
/ 17 сентября 2011

У меня есть следующая структура папок в моем проекте.

> src/
>>main/
>>>webapp/
>>>>WEB_INF/
>>>>>pages/
>>>>>>js/

Все мои файлы сценариев находятся в папке js, а моя страница jsp расположена в папке страниц. Чтобы включить сценарий abc.js вМоя страница JSP Я написал следующую строку

<script type="text/javascript" src="/WEB-INF/pages/js/abc.js"></script>

Но я получил следующую ошибку

"NetworkError: 404 Not Found - http://localhost:8080/WEB-INF/pages/js/abc.js"

Я использую Jetty Server для развертывания моего проекта.Для его запуска я использую

mvn jetty:run

Если я помещаю свой файл скрипта прямо в папку webapp и включаю скрипт следующим образом, то он работает отлично.

<script type="text/javascript" src="abc.js"></script>

Но яхочу сохранить структуру папок моего проекта, поместив все скрипты в папку js.Может кто-нибудь сказать мне, почему сервер Jetty принимает файлы, расположенные только в папке webapp?Я использую windows7

1 Ответ

1 голос
/ 17 сентября 2011

Ваш src неверен. В спецификациях сервлета Java прямо указано, что документ в каталоге WEB-INF не будет доступен для веб-сервера . Вам нужно разместить файл JavaScript вне его.

Обычно вы помещаете jsp файлы внутри него, потому что к ним нет прямого доступа. Доступ к ним осуществляется через сервлет или любую другую инфраструктуру веб-разработки на Java.

Если вы хотите сохранить структуру папок, просто поместите папку js в корневой каталог веб-архива:

webapp/
   js
   WEB-INF/
       classes/
       lib/
       pages/
       web-xml
Каталог

WEB-INF был разработан специально для предотвращения доступа пользователей к файлам, к которым он не должен получать доступ, например, к каталогам classes, lib или дескриптору развертывания web.xml.

...