HTML 编码规范中关于“不要指定引入资源所带的具体协议”的问题

2015-03-03 14:04:49 +08:00
 rokeyzki

HTML编码规范中提到:

不要指定引入资源所带的具体协议。

当引入图片或其他媒体文件,还有样式和脚本时,URLs 所指向的具体路径,不要指定协议部分(http:, https:),除非这两者协议都不可用。

不指定协议使得 URL 从绝对的获取路径转变为相对的,在请求资源协议无法确定时非常好用,而且还能为文件大小节省几个字节。

不推荐:
<script src="http://cdn.com/foundation.min.js"></script>

推荐:
<script src="//cdn.com/foundation.min.js"></script>

遇到的问题:

当我在本地环境使用HTML编码规范推荐的方式去编写代码,却无法获取到对应的资源文件,请问为何会出现这种情况?

示例代码:
<script src="//libs.baidu.com/jquery/1.10.2/jquery.min.js" async></script>

以上。

4535 次点击
所在节点    HTML
10 条回复
abelyao
2015-03-03 14:11:55 +08:00
亲,你的标签写错了,async 后面就结束符了?
abelyao
2015-03-03 14:13:37 +08:00
@abelyao 呃,看错了… 无视我吧
binux
2015-03-03 14:17:04 +08:00
因为本地测试的直接 file:// 打开,并没有通过 http 协议传输啊
nealnote
2015-03-03 14:17:14 +08:00
本地用的是 文件协议 file:
你的等价于

<script src="file://libs.baidu.com/jquery/1.10.2/jquery.min.js" async></script>

你的电脑本地这个路径并不存在这个文件。

应该做的是,本地起web server 跑
shiny
2015-03-03 14:17:15 +08:00
1、文件系统上直接打开HTML,这种写法不会被解析成 http
2、而且百度的库不支持 https

你可以在本地配置一个 http 服务器来打开,这种写法就可以用。
ETiV
2015-03-03 14:18:52 +08:00
网页的 URL scheme 是不是 file://
rokeyzki
2015-03-03 14:21:33 +08:00
@binux
@nealnote
@shiny
@ETiV
非常感谢以上各位,问题解决,结贴
aliuwr
2015-03-03 15:26:22 +08:00
可以使用 http://lib.sinaapp.com/, 支持 HTTPS.
otakustay
2015-03-03 18:25:29 +08:00
这种写法在file://协议下某些版本IE会直接死机,所以我还是喜欢检测protocol来区分http和https,同时忽略其它协议
ccbikai
2015-03-03 18:43:59 +08:00
@rokeyzki 静态页面本地可以跑一个 http 服务器,方便多了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/174152

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX