Mi sono appena imbattuto in uno scenario in cui un foglio di stile veniva bloccato su una pagina di pagamento sicura.
Il foglio di stile è stato caricato in questo modo:
<link href="/CSS/all.min.css?v=2" rel="stylesheet" type="text/css" />
Stavo ricevendo un errore nella console di chrome dev:
Mixed Content: The page at
https://www.example.com/secure/checkout.aspx
was loaded over HTTPS, but requested an insecure stylesheethttp://www.example.com/CSS/all.min.css?v=2
. This request has been blocked; the content must be served over HTTPS.
Ho avuto l'impressione che l'utilizzo di percorsi relativi (all.min.css è servito localmente) assicurasse che il contenuto venga servito sotto il protocollo della pagina richiesta, in questo caso https
, ma ovviamente non stava accadendo .
Ho provato alcune cose per far funzionare di nuovo il CSS come usare il percorso completo del file insieme a https
che non ha funzionato e, per un capriccio, ho deciso di rimuovere la stringa di query 'cache buster' ?v=2
e il CSS è stato pubblicato bene.
Detto questo, non ho idea del motivo per cui questo ha funzionato, ero inconsapevole che l'utilizzo di una stringa di query quando si fa riferimento a un file ne impedisse il caricamento sicuro, qualcuno potrebbe spiegarne i motivi?
Edit *
Puoi verificarlo da solo, ecco i due link:
-
Fornito in HTTPS con stringa di query del cache buster
Si noti l'interruttore di protocollo nel secondo link?
Pensi che questo potrebbe avere qualcosa a che fare con lo SSL che usa ancora SHA1? Un aumento delle misure di sicurezza imposte dal browser? Ho notato che ciò non accade in IE ma in Chrome / FF, la risorsa è bloccata.