I just added an SSL to my site. When I go to https://mydomain.com I see the text but no CSS or images are there. It is on a dedicated server and I have a full control of the code.
All paths currently are relative. I can view images and css when I go to those files directly whether using HTTP or HTTPS. But when i load a page they are not loading...
When I use Firebug and look in NET, I see for each image 302 Found. What does that mean?
What changes do I need to make to make sure http and https display site similarly?
Do I make all paths absolute? Is there a way to make a single change to affect all or I actually have to go and change each and every one?
Thanks.
Do you have hotlink protection? If you have try to disable it. And see if it helps.
You don't need to make everything absolute, but you need to make sure that your CSS and images are accessible over SSL. Try accessing them directly, or use Firebug or a similar browser tool to figure out where it's trying to load them from. Consider using "Protocol-relative URLs" so that CSS, images, and such are always accessed using the same protocol (http or https) as the page itself. http://paulirish.com/2010/the-protocol-relative-url/
If you are pointing at your CSS with an absolute link (like http://www.yourcompany.net/yourcompany.css
) it will not show the CSS in https. If you make that absolute https://www.yourcompany.net/yourcompany.css
, it will work in both calls.
I had the same issue. If page is opened in https then css/js should also be loaded in https. By this I mean, to load css/js it should use the same protocol as it used for opening html/jsp/jsf etc page. So the solution is to not use absolute url for css/js. Use relative url instead like this :
<link type="text/css" rel="stylesheet" href="../css/style.css" />
OR use this :
<% String contextPath=request.getScheme()+"://"+request.getServerName()"+":"+request.getServerPort()+request.getContextPath();
<link type="text/css" rel="stylesheet"
href="<%=contextPath>/css/style.css" />
This should solve image loading issue.