我使用的是Windows。我有一个 Laravel 6 / Vue 2 应用程序,并且使用 XAMPP 和 php 7.4.29 运行良好。 (我正在使用
php artisan serve
运行提到的项目)
然后我想运行一个使用 Laravel 8 的开源项目。它不适用于 php 7.4,需要我使用 php >= 8.1。因此,我删除了现有的 XAMPP 文件夹,并安装了 XAMPP 8.2.12,并且能够使操作系统项目正常工作。
我随后卸载了 XAMPP 8.2.12,然后(从存档中)提取了我之前使用过的 XAMPP/php 7.4.29。现在,Laravel 6 应用程序不再工作。 (Vue 应用程序无法加载)。
所以我从头开始创建了一个测试 Laravel 6 / Vue 2 项目,它也无法正常工作。 Laravel 欢迎页面加载,但是 Vue 对象未加载,引导程序也未加载)。所以我添加了一些测试跟踪来尝试看看发生了什么:
console.log("special text");
myapp.js
,它只调用 console.log('my app');
。test.blade.php
页面(并在 /test
进行路由),该页面使用 layouts\app.blade.php
- 调用 Vue 脚本的位置。所以在 app.blade.php 中,我有这些行:
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script> // has trace: console.log("special text")
<script src="{{ asset('js/myapp.js') }}" defer></script> // has trace: console.log('my app')
当我加载测试页面(
localhost:8000/test
)时,控制台显示my app
,但不是special text
。
现在奇怪的部分来了。我查看了开发工具网络页面。正在提供的
app.js
和 app.css
与 public/js 和 public/css 文件夹中的同名文件具有不同的大小,并且经过检查,我发现内容也不同。它们是另一个项目(Laravel 8)的内容,该项目在 Windows 上处于完全不同的路径。 (app.css 使用的是 Tailwind css!!..)所以在我看来,php artisan serve
,在某种程度上被困在服务这些其他页面上。我尝试过拨打php artisan cache:clear
,但这并不影响问题。
如前所述,Laravel 6 和 Laravel 8 操作系统项目位于 PC 上完全不同的文件夹中。
如果相关,我创建了测试 Laravel 6、Vue 2 应用程序,其中包含以下内容:
composer create-project --prefer-dist laravel/laravel myapp "6.*"
cd myapp
composer require laravel/ui:^1.0 --dev
php artisan ui vue --auth
npm install && npm run dev
这让我感到困惑,但是有一个简单的答案。我需要清除 浏览器 缓存。
如果我使用不同的浏览器,就没有问题。我还可以在服务器日志中看到,只有
myapp.js
正在被服务,但是 app.js
和 app.css
没有被服务。因此,浏览器继续从其缓存中提供相同的页面(来自其他项目)。
对于这两个项目,我使用相同的 url,即 localhost:8000