【问题标题】:Laravel takes too long to load viewsLaravel 加载视图的时间太长
【发布时间】:2023-04-06 21:46:01
【问题描述】:

我在 Windows 机器上使用 vagrant 和虚拟框设置了 LEMP 堆栈。 php 是 7.0 版,Nginx 是 1.4.6 版。我已经为客户机分配了 768mb 的 RAM(Ubuntu 14.04.5 LTS)

在客户机上,我已按照 Laravel 文档页面上的说明安装并配置了 composer。使用 Laravel 安装程序,我将 Laravel 安装在主机的 www 目录 laravel new commerce 所以我的 laravel 安装路径看起来像这样 /vagrant/www/commerce

在我的 Nginx 配置文件中,我将 Nginx 配置为从此位置 /vagrant/www/commerce/public 提供文件并将所有请求重定向到索引页面 try_files $uri $uri/ /index.php?$query_string;

在浏览器(chrome)中,当我测试一切是否正常时,Laravel 登录页面大约需要 4-5 秒才能显示在浏览器中。这对于 safari 和 firefox 是一样的。我关闭了访客机器并重新启动了几次,但登陆页面仍然需要大约 4-5 秒才能显示。

我偶然发现网上某处的帖子告诉我安装调试栏。我成功安装了调试栏。当我再次在浏览器中测试时,登陆页面显示大约需要 16 秒。这里奇怪的是调试栏没有记录任何消息。令人沮丧。

另一个解决方案建议使用慢日志。所以,首先,我卸载了调试栏,并在我的客户机上配置了慢日志来跟踪慢请求。我设置了 10 秒的超时时间。当我检查/var/log 中的slow.log 文件时,我得到了slow.log 下图中的内容,我似乎对此毫无意义。请问我需要帮助。

提前致谢

【问题讨论】:

  • 在 Web 浏览器开发人员工具的网络选项卡上显示什么?您可以检查是什么导致您的网页变慢,您可以在 Firefox 上尝试使用 Firebug。
  • 调试栏确实会因为监控而减慢请求速度。但是,您还可以在 timeline 选项卡中查看是什么降低了您的请求速度。能发个截图吗?
  • Debugbar 提供了关于页面渲染时发生的事情的足够信息,也许你没有正确使用它,还检查 Laravel 运行环境的配置。
  • 只需创建一个测试控制器动作并查看并执行一些计时。如果从动作开始到生成路由所花费的时间确实是问题,这会让你知道。
  • @troyer 我刚刚检查了 Firefox 的网络选项卡,在原因列中,我看到了 js document 我已经检查了视图文件夹中的 welcome.blade.php 文件。它不请求任何javascript。我很困惑。

标签: php laravel vagrant


【解决方案1】:

我遇到了类似的问题,启用 NFS 进行文件夹共享解决了这个问题。将 NFS 添加到 ~/Homestead/Homestead.yaml

folders:
- map: ~/www/commerce
  to: /vagrant/www/commerce
  type: "nfs"

然后配置您的服务器。

vagrant halt
vagrant up --provision

【讨论】:

  • 我没有使用宅基地
  • Homestead 只是 Vagrant(您已经在使用)的包装,所以您可能想尝试一下。它会为您设置好一切,因此出现此类配置问题的可能性会降低。
  • 我就是这么做的。 config.vm.synced_folder "./www/commerce", "/vagrant/www/commerce", type:"nfs" 但它仍然没有区别。
  • 这可能是虚拟机的配置问题。 Homestead 的优点是盒子是预先配置好的。我个人会尝试使用预配置的 homestead 盒子,因为你已经在使用 vagrant——它是一个简单的“vagrant box add laravel/homestead”。如果它有效,您可以排除耗时的配置问题。
  • 非常感谢@jasonBoss,虽然我没有使用 nfs。我将其更改为 rsync。我按照此链接中的说明进行操作link
猜你喜欢
  • 2017-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-18
  • 2022-12-04
  • 1970-01-01
  • 2011-07-03
  • 1970-01-01
相关资源
最近更新 更多