2017-02-21 7 views
1

Если я укажу страницу ошибки вроде этого:Как указать «Не найденные» страницы ошибок в web.xml, чтобы изменить URL-адрес?

<error-page> 
    <error-code>404</error-code> 
    <location>/pages/not-found.html</location> 
</error-page> 

и ударил URL localhost:8080/app/something/else (который возвращает ошибку 404), то URL в браузере остается localhost:8080/app/something/else в то время как содержание страницы ошибки в сваливается в браузере. Проблема здесь заключается в том, что если я задать любой CSS ресурс, как это:

<link type="text/css" rel="stylesheet" href="resources/css/bootstrap.css" /> 

затем, браузер пытается загрузить localhost:8080/app/something/else/resources/css/bootstrap.css вместо localhost:8080/app/resources/css/bootstrap.css, который, очевидно, не удается. Мы также не можем использовать

<link type="text/css" rel="stylesheet" href="/resources/css/bootstrap.css" />

как браузер будет загружать localhost:8080/resources/css/bootstrap.css

Основная проблема заключается в том, что относительный путь зависит от количества слешами есть в URL.

На мой взгляд, если я могу перенаправить страницы для /pages/not-found.html, то я могу быть указать последовательный путь к файлам CSS (не заботясь о количестве слешами в URL)

ответ

0

Если вы говорите о JSF-Application может быть, вы можете использовать phaselistener:

В phaselistener вы можете позволить JSF делать свою работу и поймать java.io.FileNotFoundException. В случае, если происходит исключение Вы можете перенаправить пользователя на специальный сайт:

FacesContext context = event.getFacesContext(); 
context.getExternalContext().redirect("/pages/not-found.html"); 
0

вы должны использовать это как для CSS файла

<h:outputStylesheet library="css" name="bootstrap.css"/> 

и для файла JavaScript

<h:outputScript library="js" name="bootstrap.js"/> 

или если вы хотите сделать, как вы используете

<link type="text/css" rel="stylesheet" href="#{request.contextPath}/resources/css/bootstrap.css" /> 

, но лучше использовать его в первую очередь

Смежные вопросы