使用http https或//引用链接或脚本标记中的文件

时间:2016-10-28 02:16:57

标签: html

在我的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

2 个答案:

答案 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)

当你编写没有协议的网址(httphttps)时,它会根据你的网址自动获取协议。

*当然,如果您在本地(而不是从服务器)查看文件,它将尝试使用file://协议请求文件。

这样的网址示例是

file:///D:/test.html

如果您尝试从本地服务器或网站浏览,则

http://localhost/yourproject/test.html

http://www.example.com/test.html

然后它将采用http协议,正如我在第一段中所写。

为什么要在没有协议的情况下编写网址?

因为某些网站在启动时可能不需要https协议。但后来由于安全问题可能需要。因此,当网站所有者不确定转换为安全协议时,在这种情况下,您可以编写此模式以避免进一步的编码更改。