我想知道是否有一种方法可以在发生请求时删除www(或添加)。
我的问题是:
我这样插入CSS: "//domain.com.br/resources/cssname.css"
如果我访问一个页面http,一切工作完美,但当我访问一个页面https使用"www.domain.com.br"页面不加载CSS文件
如果我像这样插入CSS: "//WWW.domain.com.br/resources/cssname.css",相反的情况发生,当我使用"domain.com.br"访问页面时,没有CSS。
我可以改变所有请求时使用删除www或所有请求添加www?
我看到了这个可以用这个来完成吗?
另外,我正在使用glassfish,我不知道这是否可以由那里或提供商完成。
谢谢。
你不应该担心所有CSS/JS/图像资源的域名和上下文路径。
不是<link rel="stylesheet" href="//domain.com/context/resources/style/some.css" />
<script src="//domain.com/context/resources/script/some.js"></script>
<img src="//domain.com/context/resources/images/some.png" />
或者
<link rel="stylesheet" href="#{request.contextPath}/resources/style/some.css" />
<script src="#{request.contextPath}/resources/script/some.js"></script>
<img src="#{request.contextPath}/resources/images/some.png" />
或甚至笨拙地更长,如其他答案所暗示的
<link rel="stylesheet" href="#{facesContext.externalContext.requestContextPath}/resources/style/some.css" />
<script src="#{facesContext.externalContext.requestContextPath}/resources/script/some.js"></script>
<img src="#{facesContext.externalContext.requestContextPath}/resources/images/some.png" />
你应该实际上使用
<h:outputStylesheet name="style/some.css" />
<h:outputScript name="script/some.js" />
<h:graphicImage name="images/some.png" />
对于CSS背景图像,而不是
.some {
background-image: url("../images/some.png");
}
你应该实际上使用
.some {
background-image: url("#{resource['images/some.png']}");
}
参见:
- 如何在Facelets模板中引用CSS/JS/image资源?JSF资源库是用来做什么的?应该如何使用它?
- 将JSF前缀映射更改为后缀映射迫使我在CSS背景图像上重新应用映射
就我个人而言,我总是使用:
#{facesContext.externalContext.requestContextPath}/resources/cssname.css
作为任何我的资源的路径。这样,我确信我总是得到正确的路径到我的资源。
希望这对你有帮助欢呼声