我们在http [s]://A.example.com/上有一个网站,它引用了http [s]上的一些资源(JS和CSS)://A.example.com/
如果在主要站点A正在使用时引用资源时使用相同的方案,则有意义并避免一些浏览器警告.站点A使用PHP,因此我们可以以编程方式检测当前方案(http或https)并将其插入页面的标题中.
但是,我们发现只使用'//'代替方案也可以.
因此,无论我们是使用http还是https访问网站A,网站A都可以在我们尝试的所有浏览器中引用"//B.example.com/theme/main.css"而不会出现问题.
我的问题是:这是一个有效的URL吗?它似乎工作,但我找不到其他人这样做,我找不到任何建议或推荐的例子.
我正在使用Facebook的javascript sdk,它有双正斜杠.他们的意思是什么?
<script src="//connect.facebook.net/en_US/all.js"></script>
我知道单个/意味着根目录,但是什么是//?这是告诉源使用http://然后路径?
我无法弄清楚这一点,但出于某种原因,当我使用谷歌库并寻找要使用的脚本时(https://developers.google.com/speed/libraries/devguide#jquery),它们是提供没有http ...为什么?我也注意到谷歌现在在Youtube嵌入代码上执行此操作(这导致我的ckeditor youtube嵌入插件将此视为iframe的无效src).
示例(不含http):
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
为什么不这样(带http):
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
我觉得它与将所有东西合并到https有关.也许这是准备?
当我尝试使用Kendo UI创建网格或图表时,我不断收到以下错误.但是,一个简单的ComboBox可以工作.我们正在使用商业lisence并在经过身份验证时从Telerik的网站下载了js和css.
未捕获的ReferenceError:未定义kendo
未捕获的ReferenceError:$未定义
配置:_Layout.cshtml
<head>
<environment names="Development">
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.css" />
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.common-bootstrap.min.css" />
<link rel="stylesheet" href="~/lib/kendo-ui/styles/kendo.bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" />
</environment>
<environment names="Staging,Production">
<link rel="stylesheet" href="https://ajax.aspnetcdn.com/ajax/bootstrap/3.3.7/css/bootstrap.min.css"
asp-fallback-href="~/lib/bootstrap/dist/css/bootstrap.min.css"
asp-fallback-test-class="sr-only" asp-fallback-test-property="position" asp-fallback-test-value="absolute" />
<link rel="stylesheet"
href="https://kendo.cdn.telerik.com/2017.2.504/styles/kendo.common-bootstrap.min.css"
asp-fallback-href="~/lib/kendo-ui/styles/kendo.common-bootstrap.min.css"
asp-fallback-test-class="k-common-test-class"
asp-fallback-test-property="opacity" asp-fallback-test-value="0" />
<link rel="stylesheet"
href="https://kendo.cdn.telerik.com/2017.2.504/styles/kendo.bootstrap.min.css"
asp-fallback-href="~/lib/kendo-ui/styles/kendo.bootstrap.min.css"
asp-fallback-test-class="k-theme-test-class"
asp-fallback-test-property="opacity" asp-fallback-test-value="0" />
<link rel="stylesheet" href="~/css/site.min.css" asp-append-version="true" />
</environment>
</head>
<environment names="Development">
<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/bootstrap/dist/js/bootstrap.js"></script>
<script src="~/lib/kendo-ui/js/kendo.all.min.js"></script>
<script src="~/lib/kendo-ui/js/kendo.aspnetmvc.min.js"></script>
<script src="~/js/site.js" asp-append-version="true"></script>
</environment>
<environment names="Staging,Production">
<script src="https://ajax.aspnetcdn.com/ajax/jquery/jquery-2.2.0.min.js"
asp-fallback-src="~/lib/jquery/dist/jquery.min.js"
asp-fallback-test="window.jQuery"
crossorigin="anonymous"
integrity="sha384-K+ctZQ+LL8q6tP7I94W+qzQsfRV2a+AfHIi9k8z8l9ggpc8X+Ytst4yBo/hH+8Fk"> …Run Code Online (Sandbox Code Playgroud) 我经常使用//相对URI hack.例:
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
Run Code Online (Sandbox Code Playgroud)
主要是因为这篇文章:在<script src ="http:// ...">中用//替换http://是否有效?.
但是,我在一个项目上工作的人说这不适用于Mac(Chrome,Firefox和Safari)或iDevices.
没有Mac或所说的设备,我无法验证它,它在Windows上运行正常.谁能证实这一点?
我现在在几个网站上看过这个.一个简单的例子是查看维基百科登陆页面的来源:
<link rel="shortcut icon" href="//en.wikipedia.org/favicon.ico" />
<link rel="apple-touch-icon" href="//upload.wikimedia.org/wikipedia/commons/f/f1/Wikipedia-mobile-icon.png" />
<link rel="copyright" href="//creativecommons.org/licenses/by-sa/3.0/" />
Run Code Online (Sandbox Code Playgroud)
是否有一些标准与启动外部链接//?这样做是为了避免必须下载额外的https?:并保存一些字符,因为大多数浏览器足够聪明,可以自己添加其余的方案吗?或者这是合法的事情,也许还有其他原因?
我刚开始测试"protocol less Urls"背后的想法.
我要解决的问题是:在https页面上我需要从http加载外部css文件.
以"正常"方式执行此操作会导致失败... css文件被阻止.(现在只用chrome测试).
所以我的问题是:"protocol less urls"会从http/https/both加载文件吗?
有了这个,我可以生成一个类似的按钮:D
<script>(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
Run Code Online (Sandbox Code Playgroud)
但为什么不呢
js.src =" some protocol: //connect.facebook.net/en_US/all.js#xfbml=1";
为什么没有具体的协议?
我有以下脚本标记,<head>以便在SSL和非SSL页面之间来回切换时不会出现任何安全错误.但它看起来很毛茸茸.
我可以用任何方式组合它们或减少一些代码吗?
<script type="text/javascript">document.write(["\<script src='",("https:" == document.location.protocol) ? "https://" : "http://","ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js' type='text/javascript'>\<\/script>"].join(''));</script>
<script type="text/javascript">document.write(["\<script src='",("https:" == document.location.protocol) ? "https://" : "http://","html5shiv.googlecode.com/svn/trunk/html5.js' type='text/javascript'>\<\/script>"].join(''));</script>
<script type="text/javascript">document.write(["\<script src='",("https:" == document.location.protocol) ? "https://" : "http://","use.typekit.com/12345.js' type='text/javascript'>\<\/script>"].join(''));</script>
Run Code Online (Sandbox Code Playgroud) 所有谷歌的CDN 库都通过http s提供.通过https over http服务他们有什么好处吗?
html ×4
javascript ×4
facebook ×2
http ×2
url ×2
ckeditor ×1
google-cdn ×1
https ×1
hyperlink ×1
jquery ×1
kendo-ui ×1
kendo-ui-mvc ×1
protocols ×1
refactoring ×1
src ×1
ssl ×1
unix ×1
uri ×1
youtube ×1