将JSF前缀更改为后缀映射会迫使我在CSS背景图像上重新应用映射
我已经使用前缀映射多年,并决定切换到后缀 映射,只是为了去除url中的将JSF前缀更改为后缀映射会迫使我在CSS背景图像上重新应用映射,css,jsf,jsf-2,facelets,Css,Jsf,Jsf 2,Facelets,我已经使用前缀映射多年,并决定切换到后缀 映射,只是为了去除url中的/faces。我只是想 在我给自己挖个洞之前,先检查一下方向是否正确 发生了一些意想不到的事情。我改变了这一点: 小脸蛋 /面孔/* 为此: 小脸蛋 *.xhtml 然后我看到所有经过FacesServlet的东西都有.xhtml 附加到它之后,以便浏览器请求background.png.xhtml文件, style.css.xhtml文件-是否正确?我想这叫做后缀映射, 但在我看来它有点凌乱,我试图说服自己它是 要走
/faces
。我只是想
在我给自己挖个洞之前,先检查一下方向是否正确
发生了一些意想不到的事情。我改变了这一点:
小脸蛋
/面孔/*
为此:
小脸蛋
*.xhtml
然后我看到所有经过FacesServlet的东西都有.xhtml
附加到它之后,以便浏览器请求background.png.xhtml
文件,
style.css.xhtml
文件-是否正确?我想这叫做后缀映射,
但在我看来它有点凌乱,我试图说服自己它是
要走的路
在引用URI的CSS文件中,我还必须附加.xhtml
:
background-image: url(images/background.png.xhtml);
然后我看到了BalusC的一篇帖子,它给出了一个解决方案来防止
不通过FacesServlet下载资源:
限制原始XHTML文档
XHTML
*.xhtml
当我添加这个时,页面上只加载real.xhtml
文件,所有
其他资源(尽管附加了.xhtml
)不会显示
我只想知道:
.xhtml
添加到所有正常的内容中(如果
(最愚蠢的问题)
和
中包含的资源。这与URL映射中的更改无关。这与从JSF1.x到JSF2.x的更改以及从
和
到前面提到的JSF2标记的更改有关
对于您自己的脚本、样式表和其他从公共webcontent提供的静态内容,您应该手动添加.xhtml
扩展。您不需要更改任何关于现有静态资源的内容
仅适用于CSS背景图像和CSS文件中使用
标记包含的其他url()
引用(因此不是因为,谢谢。我不明白的最后一点是,为什么我必须在我的背景图像中附加.xhtml:url属性。我使用一个ResourceManager,它为缓存刷新目的附加一个构建版本号,但我不明白这是一个什么因素。)(事实上,我注意到版本号并没有附加到css文件中请求的资源中)。我想抓住最后一点,然后我会很高兴。css是从根目录中的模板加载的,带有h:outputStylesheet library=“css”name=“styleSheet.css”.那么,是什么配置问题导致我必须附加后缀?谢谢。我应该澄清一下,一切都是通过.xhtml后缀完成的,包括我自己的文件,即login.xhtml.xhtml…我创建了一个模板NetBeans JSF项目,配置*.xhtml后缀映射,在index.xhtml中有一行,然后我看到浏览器请求styles.css、 xhtml。没有过滤器,没有资源管理器,没有容器安全性,这似乎就是它的工作方式。我每周7天使用JSF,但甚至连最简单的应用程序都无法使用*.faces后缀。更正之前的评论,没有login.xhtml.xhtml,只有login.xhtml,但都不是.xhtml(js、css等)将.xhtml附加到.With.xhtml之后,它就可以工作了,只需要在样式表中将.xhtml添加到url()引用中,这有点不方便。通过10行NetBeans生成的web项目进行验证。使用chrome开发工具(&NB http monitor)我清楚地看到了一个GET for styles.css.xhtml。我只是担心这会隐藏一个更严重的错误配置,如果你对此感到惊讶,我一定是做错了什么。这可能是glassfish配置问题吗?我想知道…我必须检查domain.xml。我对这件事的最后评论是:styles.css.xhtml的问题只有在你加载wi时才会发生th h:outputStylesheet,不是用。我已经记录了这个
body {
background-image: url("#{resource['libraryname:path/to/image.png']}");
}
body {
background-image: url("#{resource['default:images/background.png']}");
}
body {
background-image: url("#{resource['images/background.png']}");
}