【问题标题】:laravel 5 - enable caching of local asset fileslaravel 5 - 启用本地资产文件的缓存
【发布时间】:2015-07-23 21:51:39
【问题描述】:

我目前正在使用 Laravel 5 开发一个应用程序,我遇到了以下问题:

例如,当我包含来自外部服务器的 .js 文件时,脚本会加载一个未修改的 304 - 这很好。根据 chrome 的网络选项卡,它在 146 毫秒内加载。 当我包含本地资产时,使用 {{asset('path to asset') }} 我总是得到 200,并且加载文件需要相当长的时间(大约 800 毫秒)。

如何设法缓存资产文件?我猜这是浏览器或网络服务器的问题。

  • 浏览器:Chrome 43.0.2357.52
  • 网络服务器:我正在使用 artisan 内置网络服务器

【问题讨论】:

    标签: php google-chrome laravel caching laravel-artisan


    【解决方案1】:

    Artisan 服务器不适用于生产用途 - 它只是一个开发服务器。它不缓存,也不是故意的。您不希望在开发时缓存内容,因为这会阻止您的更改进入浏览器。

    当您使用实际服务器(如 Apache 或 Nginx)进行生产时,它应该为您处理缓存。它们都非常灵活,并且有大量用于缓存静态资产的配置选项。值得一看 HTML 5 Boilerplate repo 上这些 Web 服务器的样板配置,因为它们为您提供了许多开箱即用的合理设置。

    你最好让你的 web 服务器处理资产的缓存,而不是把这项工作放在 Laravel 上。 Web 服务器发回静态资源(或 304 响应)比加载 PHP、引导框架然后确定适当的响应要快得多。

    【讨论】:

    • 我知道 Artisan 仅用于生产,但如果添加一些资源,页面负载会增加这么多,生产就会变得可怕。并且一些资产,如 jquery、bootstrap 等不会改变(如果他们改变了,我知道最好自己清除我的缓存)。
    • 不,Artisan 服务器用于生产。您可以考虑将 CDN 用于您不想为自己服务的第三方资产(如 jQuery 或 Bootstrap)。否则,请考虑使用 Laravel 的 homestead 或其他使用 Apache/Nginx 进行本地开发的虚拟服务器环境,并为您提供更好的不变资产缓存。
    猜你喜欢
    • 2016-04-18
    • 2015-08-08
    • 2016-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-12-18
    • 2015-12-19
    • 1970-01-01
    • 2015-04-05
    相关资源
    最近更新 更多