我刚刚在我的网站上添加了SSL。当我去https://mydomain.com时,我看到了文字,但没有CSS或图像。它位于专用服务器上,我可以完全控制代码。
目前所有路径都是相对的。无论是使用HTTP还是HTTPS,我都可以直接查看这些文件时查看图像和CSS。但是当我加载页面时,他们没有加载......
当我使用Firebug并查看NET时,我会看到每个图像302找到。这是什么意思?
我需要做些哪些更改才能确保http和https显示网站类似?
我是否将所有路径都设为绝对路径?有没有办法让一个改变影响所有人,或者我实际上必须改变每一个?
感谢。
答案 0 :(得分:11)
你有热链接保护吗?如果您尝试禁用它。看看它是否有帮助。
答案 1 :(得分:2)
您不需要将所有内容都设置为绝对,但您需要确保可以通过SSL访问CSS和图像。尝试直接访问它们,或使用Firebug或类似的浏览器工具找出它试图加载它们的位置。考虑使用“协议相对URL”,以便始终使用与页面本身相同的协议(http或https)访问CSS,图像等。 http://paulirish.com/2010/the-protocol-relative-url/
答案 2 :(得分:1)
我有同样的问题。如果以https打开页面,则还应在https中加载css / js。我的意思是,加载css / js应该使用与打开html / jsp / jsf等页面相同的协议。所以解决方案是不要为css / js使用绝对URL。使用相对网址,如下所示:
<link type="text/css" rel="stylesheet" href="../css/style.css" />
或者使用它:
<% String contextPath=request.getScheme()+"://"+request.getServerName()"+":"+request.getServerPort()+request.getContextPath();
<link type="text/css" rel="stylesheet"
href="<%=contextPath>/css/style.css" />
这应解决图像加载问题。