1

所以我正在建立一个网页。我想在某处放一张光彩照人的照片。我当然会使用 img 标签,但我很好奇这样做是否有什么不同:

<img src="img/mypic.png">

与此相比:

<img src="http://www.mysite.com/img/mypic.png">

任何一个都会显示图像,但我对性能很好奇。客户端浏览器是否关心使用哪种方法?我想 A 会更快,基于它“内部”处理请求的猜测,因此必须更快......

服务器是否总是使用方法 B 通过 Internet 将请求发送回?

鉴于选项可用,一个比另一个更好吗?

你看,我的想法是运行多个子域,其中一些可能会在以后完全转移。如果您愿意,我不想复制资产,而是想继续从我的“中央资产存储库”管理它们。如果我有成千上万的用户,我什么时候需要关注这两种方法之间的性能?

关于管理资产的任何其他建议,或要考虑的最佳实践?

4

2 回答 2

3

我会说在访问您自己域上的资产时永远不要使用。http速度与这个原因几乎没有关系。为什么这样做是因为当您将 ssl 引入到您使用的任何地方的域时,http必须更改为https至少对于建立的连接https。通过 https 连接时,某些浏览器要么大声抱怨,要么断然拒绝下载不安全的资产。所以请遵循这些准则

当您创建一个可以进行任何重写的应用程序并且可以从站点内的多个“目录”访问页面时,或者您希望在整个站点中使用通用标题或布局模板时,请选择以下格式:

/path/to/asset.js   - this is an absolute path

超过

path/to/asset.js    - this is a relative 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://example.com/path/to/asset.js
于 2013-05-22T19:42:27.083 回答
1

使用 laravel 的最佳实践是

{{ URL::to_asset('files/image.jpg') }}

这将根据您的config/application.php设置生成一个绝对 URL。例如

http://myapp.com/files/image.jpg

这种方法使用 laravel 环境,并且在您将资产移动到 CDN 或不同的服务器或子域时非常灵活。所有 URL 都可以在配置文件中使用一行进行配置。

就速度而言,如果您使用绝对路径或相对路径,则没有什么区别,因为浏览器能够非常快速地处理 URL。

于 2013-05-22T21:56:02.313 回答