Php 在引用资产时使用http有什么区别吗?

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标签,但我很好奇如果我这样做会不会有什么不同:

<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。