I am using the following code in my template to load in my CSS file:
<link rel="stylesheet" href="{!! URL::asset('css/app.css') !!}">
If I view the page over https on my local machine then the link to the app.css file is also https, however on my live server this isn't happening. If you view the live site over https and view the source you can see that the link to the CSS file is still over normal http and so doesn't load. Does anyone know why this is happening?
You may need to use
secure_asset
function instead.While your users are accessing via HTTPS, your CloudFlare configuration is passing those requests onto your server using HTTP. You have two options:
Turn on CloudFlare's Full or Strict SSL. https://blog.cloudflare.com/origin-server-connection-security-with-universal-ssl/
Set up your webserver to see the
X-Forwarded-Proto
header and tell PHP it's being accessed via HTTPS when that header's value ishttps
. How to do this depends a bit on your webserver. In nginx, for example, I do this for Amazon's ELB (which sends the same headers):and then this in my FastCGI params file:
In Apache, I think you can do this if mod_setenvif is installed: