将JSF前缀更改为后缀映射会迫使我在CSS背景图像上重新应用映射

将JSF前缀更改为后缀映射会迫使我在CSS背景图像上重新应用映射,css,jsf,jsf-2,facelets,Css,Jsf,Jsf 2,Facelets,我已经使用前缀映射多年,并决定切换到后缀 映射,只是为了去除url中的/faces。我只是想 在我给自己挖个洞之前,先检查一下方向是否正确 发生了一些意想不到的事情。我改变了这一点: 小脸蛋 /面孔/* 为此: 小脸蛋 *.xhtml 然后我看到所有经过FacesServlet的东西都有.xhtml 附加到它之后,以便浏览器请求background.png.xhtml文件, style.css.xhtml文件-是否正确?我想这叫做后缀映射, 但在我看来它有点凌乱,我试图说服自己它是 要走

我已经使用前缀映射多年,并决定切换到后缀 映射,只是为了去除url中的
/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
    添加到所有正常的内容中(如果 (最愚蠢的问题)

  • 为什么“限制原始xhtml文档”安全约束会阻止诸如 CSS、JavaScript和图像是否从加载

  • 谢谢你的反馈。我在Glassfish 3.1上使用Mojarra 2.1.2

    然后我看到FacesServlet中的所有内容都附加了.xhtml,因此浏览器请求.png.xhtml文件,.css.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']}");
    }