在我的index.html文件中引用文件时(使用链接标记):
<link rel="stylesheet" type="text/css" href="//dc-js.github.io/dc.js/css/dc.css"/>
或使用脚本标记引用文件
<script type="text/javascript" src="https://dc-js.github.io/dc.js/js/d3.js"></script>
最佳做法是这样写:
//dc-js.github.io/dc.js/css/dc.css
而不是
http://dc-js.github.io/dc.js/css/dc.css
或
https://dc-js.github.io/dc.js/css/dc.css
。
我的理解是,用户是否访问带有http或https的index.html页面,这是将在引用文件时使用的协议。我只是想知道什么是最佳做法?
从我的代码中复制以供参考:
<!-- use //dc-js.github.io/dc.js/css/dc.css instead of
href="dc-js.github.io/dc.js/css/dc.css" -- will look on smae server
"NetworkError: 404 Not Found - https://192.168.99.100/lte_data_day_summary/dc-js.github.io/dc.js/css/dc.css"
href="/dc-js.github.io/dc.js/css/dc.css"
"NetworkError: 404 Not Found - https://192.168.99.100/dc-js.github.io/dc.js/css/dc.css"
href="//dc-js.github.io/dc.js/css/dc.css" -- this works -- use this one
NO ERROR
href="///dc-js.github.io/dc.js/css/dc.css" -- this works
NO ERROR
href="////dc-js.github.io/dc.js/css/dc.css" -- this even works
NO ERROR
-->
<link rel="stylesheet" type="text/css" href="//dc-js.github.io/dc.js/css/dc.css"/>
找到相关的Q here
答案 0 :(得分:0)
一切都取决于......
- 已更新 -
外部:包含http或https是最佳做法。最令人担忧的是大多数网站正在向SSL发展,并且混合或未解决的内容肯定会再次困扰您。
内部:底部描述的相对路径是最好的方法。
外部:
http://dc-js.github.io/dc.js/css/dc.css
和
https://dc-js.github.io/dc.js/css/dc.css
<强>内部强>
如果网站名称发生更改,我会使用路径与完整地址。它使得不必回溯就容易了。
当然,这只是在我在同一网站上托管文件时。
看起来应该更像这样。
<link rel="stylesheet" type="text/css" href="/dc.js/css/dc.css"/>
或使用脚本标记引用文件
<script type="text/javascript" src="/dc.js/js/d3.js"></script>
注意:
没有正斜杠表示它位于您从中加载页面的同一文件夹中。
单正斜杠表示它位于同一服务器上的站点的根文件夹中。
双无限正斜杠表示外部文件。这就是为什么使用2个或更多正斜杠在您的外部链接上没有错误。
答案 1 :(得分:-1)
当你编写没有协议的网址(http
或https
)时,它会根据你的网址自动获取协议。
*当然,如果您在本地(而不是从服务器)查看文件,它将尝试使用file://
协议请求文件。
这样的网址示例是
file:///D:/test.html
如果您尝试从本地服务器或网站浏览,则
http://localhost/yourproject/test.html
或
http://www.example.com/test.html
然后它将采用http
协议,正如我在第一段中所写。
为什么要在没有协议的情况下编写网址?
因为某些网站在启动时可能不需要https
协议。但后来由于安全问题可能需要。因此,当网站所有者不确定转换为安全协议时,在这种情况下,您可以编写此模式以避免进一步的编码更改。