我正在为jQuery和Bootstrap创建一个本地静态站点并附加CDN脚本链接。
我注意到它不会连接并且必须在src属性中添加http:
前缀(我认为在本地需要)。一旦我将网站投入生产并留下前缀,是否存在性能差异?
答案 0 :(得分:3)
只有当https
涉及页面时才会有问题,因为http
的任何内容都会标记安全警告。由于您从另一台服务器请求外部文件,因此需要协议名字对象(如您所见)
要使请求协议不可知,请执行以下操作:
<script ..... src="//cdn.domain.com/file.ext" >
最干净的解决方案是运行本地Web服务器(允许您利用HTTP资源约定和协议无关的资源)。在OSX上,您可以使用以下命令启动简单的http服务器
> cd /path/to/project/folder
> python -m SimpleHTTPServer 8080
答案 1 :(得分:2)
如果链接或脚本中的绝对URL以//
开头,则表示它应使用与当前页面相同的协议。
如果您指定 http (或 https )协议,则强制浏览器使用该协议检索该资源。
如果使用安全连接下载页面,并且页面中有一个JS或CSS资源需要按正常 http 下载,那么大多数浏览器都会生成安全警告。因此,如果让URL省略协议并以//
开头,则可以在http页面上快速启动(因为 http 比 https 更快) ,并且在https页面上仍然是安全的(所以没有浏览器警告)。
问题在于,如果您使用的协议不同于http或https(最明显的是本地文件系统file:
的协议,即当您在硬盘中打开HTML文件时),那么它将会无法找到资源,因为使用与主页面相同的协议,它将尝试在本地文件系统中查找资源,该资源很可能不包含该资源,从而导致错误。