https下调用http的css、js等不加载,如何解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了https下调用http的css、js等不加载,如何解决?相关的知识,希望对你有一定的参考价值。

网站更换到https了,cssjs等都是站外调用的,发现不加载,这个怎么能解决?

浏览器默认是不允许在HTTPS里面引用HTTP资源的,一般都会弹出提示框,用户确认后才会继续加载,用户体验非常差。

而且如果在一个HTTPS页面里动态的引入HTTP资源,比如引入一个js文件,会被直接block掉的。

Chrome 21之后,在SSL加密页面embed非SSL的Flash会怎样呢?会被默默的屏蔽掉,只留下一句console报告。

浏览器为了安全,https下跨协议调用http的是不行的,控制台里会有警告。

所以你只能去找https协议的 css、js资源了。也有文章说https页面中可引用http的图片,发现虽然不会报红错,但是会有黄色的提醒。最好的方法是使用https的资源。

参考技术A 浏览器为了安全,https下跨协议调用http的是不行的,控制台里会有警告。。。所以你只能去找https协议的css、js资源了本回答被提问者采纳 参考技术B 这应该不是不加载的问题

用firebug的网络标签看看返回的状态码吧,看看控制台有报什么错没有
如果确实没有发起任何对css的请求,那么可以肯定你的ie设置有问题啊追问

看过了,根本不请求css,你有试过吗?换成https调用就完全正常,用的不是ie,所有浏览器都这样

追答

额,对不起,我想应该不是ie问题
你说根本没有请求css?这就匪夷所思了
我建议你把页面源码贴出来吧

参考技术C 浏览器兼容问题?追问

浏览器极速模式不加载,根本不请求css,换成兼容模式正常

追答

360浏览器?那就设置默认兼容模式加载啊!

网站发布到服务器 不能加载js和css

aspx页面能加载,就是加载不了js和css,而且通过浏览器直接打开css或js是报500错误,本地和另外一台服务器可以

出现这种情况的原因:

1.服务器的项目中对应的缓存文件没有清除,导致客户端到服务器读取的还是之前缓存的js和css文件(未修改之前的代码)

2.客户端的浏览器没有清除缓存,或者缓存清除不干净,还有缓存存在,导致浏览网页时,读取的还是本地缓存的css和js文件,没有去服务器上面读取最新的css和js文件

解决方法:

1.针对第一种情况,一般项目发布时,都会清除下服务器上对应项目的缓存,如果发布的时候忘记清除了,记得要清除一下,因为我之前就是这样,没有清除服务器上面的缓存,导致客户端读取的还是服务器上的缓存文件,所以修改的代码就没有生效

2.针对第二种清除,如果已经确认服务器缓存清除了的话,不是服务器缓存问题,那么可以考虑在引用css和js文件后加上一个随机数(也称之为版本号)如:

<script type="text/javascript" src="<%=request.getContextPath()%>/JS/common.js?v=20180201"></script>

<link href="<%=request.getContextPath()%>/CSS/Common.css?v=20180201"  rel="stylesheet" type="text/css" />

3.第三种方式,如果以上两种方法都是没有用的话,那恭喜你了,,遇到了我没有遇到过的情况,,这种情况下,有种修改情况肯定是可以解决这个问题的,直接修改你引用的css和js文件名称,这样子应该肯定是可以的,

如上

参考技术A 这是服务器的IIS没有安装静态文件支持。
在角色和功能里把静态文件选项安装上就可以了。
参考技术B 服务器设置,mime类型,路径,权限都有可能。。。。 参考技术C 是不是文件权限或者路径的问题 参考技术D 你看看是不是路径这些的问题吧

以上是关于https下调用http的css、js等不加载,如何解决?的主要内容,如果未能解决你的问题,请参考以下文章

html中js文件的版本号如何控制

加载所有html依赖文件:js,css与浏览器一样

jsp页面的调用静态资源(如img,css,js)等资源时路径的写法

SpringMVC项目加载不出css和js

网站发布到服务器 不能加载js和css

jquery load()重复加载,多次加载 js 和css问题的解决办法