Я использую префиксное отображение в течение многих лет и решил переключиться на суффикс
отображение, просто чтобы действительно избавиться от /faces
в URL. Я только хотел
чтобы проверить, что я иду в правильном направлении, прежде чем я выкопаю себе дыру как
есть несколько неожиданных вещей. Я изменил это:
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
:
<servlet-mapping>
<servlet-name>FacesServlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>
И затем я вижу, что все, проходящее через FacesServlet
, имеет .xhtml
добавлено к нему, так что браузер запрашивает background.png.xhtml
файлы,
style.css.xhtml
file - это правильно? Это называется суффиксным отображением. Предположим,
но это выглядит немного неопрятным для меня, и я пытаюсь убедить себя, что это
путь.
В моих файлах CSS, где указан URI, мне также нужно добавить .xhtml
:
background-image: url(images/background.png.xhtml);
Затем я увидел сообщение от BalusC, которое дает решение для предотвращения загрузка ресурсов без перехода через FacesServlet:
<security-constraint>
<display-name>Restrict raw XHTML docs</display-name>
<web-resource-collection>
<web-resource-name>XHTML</web-resource-name>
<url-pattern>*.xhtml</url-pattern>
</web-resource-collection>
<auth-constraint/>
</security-constraint>
Когда я добавляю это, тогда загружаются только реальные .xhtml
файлы на странице, все
другие ресурсы (несмотря на добавление .xhtml
) не отображаются.
Все, что я хочу знать, это:
-
Является ли это добавлением
.xhtml
ко всему нормальному (извините, если годы самый глупый вопрос) -
Почему ограничение "ограничить необработанные файлы xhtml docs" предотвращает такие ресурсы, как CSS, JavaScript и изображения из загрузки?
Спасибо за любую обратную связь. Я использую Mojarra 2.1.2 на Glassfish 3.1.