Ссылка на ресурс, помещенный в папку WEB-INF в файле JSP, возвращает HTTP 404 на ресурс
32851 просмотра
3 ответа
У меня есть динамический веб-проект под названием BookShopWeb, который я создал в eclipse, со следующей структурой каталогов
/BookShopWeb/|
|--src
|---WebContent
|
|---META-INF
|----WEB-INF---web.xml
|
|--css--styles.css
|--jsp---index.jsp
В web.xml я установил стартовую страницу как
<welcome-file-list>
<welcome-file>/WEB-INF/jsp/index.jsp</welcome-file>
В index.jsp я включаю CSS как
<head>
<link rel="stylesheet" type="text/css" href="../css/styles.css" />
</head>
Страница индекса при загрузке, однако, не показывает информацию о css. Я проверил элемент с помощью firebug, и он показывает сообщение об ошибке
Apache Tomcat/6.0.29 - Error report..
The requested resource (/css/styles.css) is not available.
Любая идея, почему это происходит? Как я могу это исправить? знак благодарности
Автор: markjason72 Источник Размещён: 13.11.2019 11:30Ответы (3)
22 плюса
Файлы в /WEB-INF
папке не являются общедоступными. Разместите CSS-файлы на один уровень выше в WebContent
папке и убедитесь, что они доступны, введя их URL-адрес прямо в адресной строке браузера. Кроме того, URL-адрес, который вы указываете в, <link href>
должен относиться к URL-адресу запроса (который вы видите в адресной строке браузера при открытии JSP), а не к его расположению в файловой системе диска сервера. Лучший подход - сделать его относительным к домену, начав с косой черты /
.
<link rel="stylesheet" href="/BookShopWeb/css/styles.css" />
или немного более динамично, так что вам не нужно менять свои JSP каждый раз, когда вы меняете путь к контексту
<link rel="stylesheet" href="${pageContext.request.contextPath}/css/styles.css" />
Файлы JSP могут храниться /WEB-INF
, но в этом случае они доступны только через диспетчерский сервлет, либо доморощенный путем расширения, HttpServlet
либо неявно с помощью контейнера сервлетов, такого как <welcome-file>
.
Смотрите также:
- Браузер не может получить доступ / найти относительные ресурсы, такие как CSS, изображения и ссылки, при вызове сервлета, который пересылает в JSP
- JSP в / WEB-INF возвращает «HTTP-статус 404 Запрошенный ресурс недоступен»
6 плюса
Ваша структура каталогов должна быть
/BookShopWeb/|
|--src
|---WebContent
|
|---META-INF
|----WEB-INF---web.xml
|
|--css--styles.css
|--jsp---index.jsp
Также вы назвали свой css как styles.jsp, что не является правильным способом объявления файла css.
В вашем web.xml:
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
В вашем файле JSP:
<head>
<link rel="stylesheet" type="text/css" href="./css/styles.css" />
</head>
Автор: Harry Joy
Размещён: 22.04.2011 04:21
-1 плюса
У меня такая же проблема; Я попробовал все, и в конце концов я сделал это моей половиной: я написал во всех JSP ...
<head>
<style type="test/css">
<%= MYCLASS.getCSS() %>
</style>
</head>
...
И в MYCLASS я создал открытую статическую строку String getCSS () {...}; Из IDE (Eclipse) я создал папку, расширяющую папку в D: / ..., куда я поместил css. В функции JSP выполняет функцию, которая читает CSS с заданным путем (где вы поместили CSS, например, D: /PROJECT/css/SOMETHING.css) и возвращает его. Таким образом, JSP записывает значение MYCLASS.getCSS () в, Пересылаемый JSP содержит CSS в своих тегах стиля :)
Это не лучший способ сделать это, но это единственное, что сработало для меня. Я надеюсь, что помог тебе.
Используйте BufferedReader для чтения файла CSS, это очевидно. !!А также!! сервер должен прочитать его ОДИН РАЗ; в конце функции сохраните CSS для чтения в переменной, чтобы вам не приходилось читать его каждый раз, когда кто-то посещает вашу страницу;)
Код:
static String css = ""; // CSS FILE, ACCESSIBLE FROM ALL THE CLASS.
...
@SuppressWarnings("resource")
public static String getCSS(ENUM e) {
BufferedReader br; // BR
String s = ""; // FINAL STRING
File f; // THE CSS FILE
if(css == "") { // READ ONLY IF String CSS (declared first) IS EMPTY
try
{
f = new File(UR_PATH); // IF DESKTOP
if(!f.exists()) // IF f DOESN'T EXISTS
throw new FileNotFoundException("CSS NOT FOUND!");
}
br = new BufferedReader(new FileReader(f)); // INIT BR
System.out.println("READING CSS...");
//then; useless comment
try {
while(true) {
String cur = br.readLine(); //current line
if(cur == null) // if cur is null, stop the BR
throw new IOException("ENDED CSS! YUPPIE!");
else // else add cur (current) to s
s += cur;
}
}
catch (IOException e1) { // IO IOException (end of CSS)
System.out.println("CSS READ!");
try {
br.close(); // close br
} catch (IOException e2) { // if CAN'T CLOSE BR... Error
// TODO Auto-generated catch block
e2.printStackTrace();
}
System.out.println("\n------------------\nThe server read a CSS; Content:\n"+s+"\n------------------\n");
css = s;
}
}
catch (FileNotFoundException fnfe)
{
System.err.println("\n----------\nFATAL ERROR IN \"Property.java\": WRONG CSS PATH");
System.exit(-1);
}
return s;
}
// WATCH THE BEGIN. There was if(css == ""); this part of code will be executed if the program already stored the CSS in the String css.
else { // IF ALREADY DECLARED, RETURN CSS
System.out.println("\n--------------------\nRETURNED CSS; ALREADY READ\n----------------------");
return css;
}
}
Автор: Axel Montini
Размещён: 22.02.2015 08:02
Вопросы из категории :
- jsp Получите доступ к значению Enum, используя EL с JSTL
- jsp Сервлет для обслуживания статического контента
- jsp Как отправить несколько моделей в Struts 2?
- jsp Можно ли отобразить компоненты Swing в JSP?
- jsp Различия между куки и сессиями?
- jsp JSP генерирует электронную таблицу Excel (XLS) для загрузки
- resources Могу ли я перечислить ресурсы в данном пакете?
- resources Плагин для Visual Studio для быстрого поиска файлов в решении
- resources Как мне прочитать файл ресурса из файла jar Java?
- resources Генетический алгоритм ресурса
- resources WPF - изображение «не является частью проекта или его действие по сборке не установлено как ресурс»
- resources Ресурс Java как файл
- web-inf JSP в / WEB-INF возвращает «HTTP-статус 404 Запрошенный ресурс недоступен»
- web-inf Ссылка на ресурс, помещенный в папку WEB-INF в файле JSP, возвращает HTTP 404 на ресурс
- web-inf Создание tomcat WEB-INF \ class \ myclass из библиотеки tomcat с помощью загрузчика классов
- web-inf ссылка на файл CSS в развернутом веб-приложении
- web-inf Can you have WEB-INF outside the webapp?
- web-inf Как выйти из веб-страницы, реализованной в jsp - JavaEE и NetBeans