Php 在引用资产时使用http有什么区别吗?
所以我在建一个网页。我想把一张漂亮的照片放在某个地方。我当然会使用img标签,但我很好奇如果我这样做会不会有什么不同:Php 在引用资产时使用http有什么区别吗?,php,html,web-applications,web,laravel,Php,Html,Web Applications,Web,Laravel,所以我在建一个网页。我想把一张漂亮的照片放在某个地方。我当然会使用img标签,但我很好奇如果我这样做会不会有什么不同: <img src="img/mypic.png"> 与此相比: <img src="http://www.mysite.com/img/mypic.png"> 任何一个都会显示图像,但我对性能很好奇。客户端浏览器是否关心使用哪种方法?我猜想A会更快,基于它在内部处理请求的猜测,因此一定会更快 服务器是否总是使用方法B通过internet发送请求 如果
<img src="img/mypic.png">
与此相比:
<img src="http://www.mysite.com/img/mypic.png">
任何一个都会显示图像,但我对性能很好奇。客户端浏览器是否关心使用哪种方法?我猜想A会更快,基于它在内部处理请求的猜测,因此一定会更快
服务器是否总是使用方法B通过internet发送请求
如果有选择的话,一个比另一个好吗
你看,我的想法是运行多个子域,其中一些子域稍后可能会完全转移。如果您愿意,我希望继续从我的“中央资产存储库”管理它们,而不是复制资产。如果我有成千上万的用户,在什么时候我需要关心这两种方法之间的性能
管理资产的其他建议,还是要考虑的最佳实践?
< P>我想说,在访问自己域中的资产时,不要使用HTTP。速度与这一推理几乎没有或根本没有关系。之所以这样做,是因为当您在使用http的任何地方将ssl引入域时,至少对于通过https建立的连接,必须更改为https。一些浏览器在通过https连接时,要么大声抱怨,要么干脆拒绝下载不安全的资产。所以请遵循这些指导原则 当您正在创建一个执行任何重写的应用程序,并且可以从站点中的多个目录访问页面,或者您希望在整个站点中使用公共标题或布局模板时,请首选以下格式:/path/to/asset.js - this is an absolute path
结束
唯一不正确的情况是当您在css中引用资产时,因为这些资产是相对于css加载的,但是css本身应该使用前导“/”加载
在访问cdn上加载的外部资产时,js首选:
//example.com/path/to/asset.js (works if the site support both http & https will request it however the hosting page was requested this is called a protocol relative path )
结束
我想说的是,在访问自己域上的资产时,永远不要使用http。速度与这一推理几乎没有或根本没有关系。之所以这样做,是因为当您在使用http的任何地方将ssl引入域时,至少对于通过https建立的连接,必须更改为https。一些浏览器在通过https连接时,要么大声抱怨,要么干脆拒绝下载不安全的资产。所以请遵循这些指导原则
当您正在创建一个执行任何重写的应用程序,并且可以从站点中的多个目录访问页面,或者您希望在整个站点中使用公共标题或布局模板时,请首选以下格式:
/path/to/asset.js - this is an absolute path
结束
唯一不正确的情况是当您在css中引用资产时,因为这些资产是相对于css加载的,但是css本身应该使用前导“/”加载
在访问cdn上加载的外部资产时,js首选:
//example.com/path/to/asset.js (works if the site support both http & https will request it however the hosting page was requested this is called a protocol relative path )
结束
使用laravel的最佳实践是
{{ URL::to_asset('files/image.jpg') }}
这将根据您的config/application.php设置生成一个绝对URL。e、 g
http://myapp.com/files/image.jpg
这种方法使用laravel环境,在您将资产移动到CDN或其他服务器或子域时非常灵活。所有URL都可以在配置文件中用一行进行配置
就速度而言,如果您使用的是绝对路径或相对路径,则没有什么区别,因为浏览器能够非常快速地处理URL。使用laravel的最佳实践是
{{ URL::to_asset('files/image.jpg') }}
这将根据您的config/application.php设置生成一个绝对URL。e、 g
http://myapp.com/files/image.jpg
这种方法使用laravel环境,在您将资产移动到CDN或其他服务器或子域时非常灵活。所有URL都可以在配置文件中用一行进行配置
就速度而言,如果您使用的是绝对路径或相对路径,则没有什么区别,因为浏览器能够非常快速地处理URL。如果适用,则首选相对路径,因为如果将站点移动到另一个域(假设文件结构保持不变),则相对路径仍然有效,当然。如果这两种方法都有效果的话,它们都不会对性能产生明显的影响。但是如果使用第一个,请在前面使用斜杠:,因为当前它只能在根页面上正常工作。您可以避免使用简单的标记来预斜杠。如果适用,则首选相对路径,因为如果站点移动到另一个域(假设文件结构保持不变),则它们仍然有效,当然。如果这两种方法都有效果的话,它们都不会对性能产生明显的影响。但是如果使用第一个,请在前面使用斜杠:,因为当前它只能在根页面上正确工作。您可以避免使用简单的标记来预斜杠。为了澄清,请假定仍然首选正斜杠,例如to_asset'/files/image。
jpg'?另外,在Orangepill描述的情况下,我是否可以将laravel的config/app更新为https?如果使用to_asset,laravel将添加配置的资产路径,因此不需要带前缀的斜杠。是的,很明显,只需更改配置,就可以使用https URL。为了澄清这一点,请假定仍然首选正斜杠,例如to_asset'/files/image.jpg'?另外,在Orangepill描述的情况下,我是否可以将laravel的config/app更新为https?如果使用to_asset,laravel将添加配置的资产路径,因此不需要带前缀的斜杠。是的,很明显,只需更改配置,就可以使用https URL。