首页 > 解决方案 > 如何让asset() 在 Laravel 8.x 中正常工作?

问题描述

我在 Windows 10 中使用 Laravel 8.x 和 Vue 2.6.12。我正在观看有关将 Vue 与 Laravel 结合起来的视频。该视频适用于旧版本的 Laravel,可能是 5.5,也可能是稍旧的 Vue,所以这很可能是我的问题的本质。这是视频的链接。我大约在 8:00 分钟。

我遇到的问题是,当我尝试执行我的代码时,无论我对 script 标签的 src 参数进行了多少试验,Laravel 都看不到 app.js 文件。(我有很好的想象力,我已经做了很多实验。) Laravel 手册在这里并没有太大帮助,只是我看到它提到了 .env 文件的 ASSET_URL 参数,所以我尝试指定前导部分那里的路径,但我没有尝试过任何工作我不可避免地会收到 404 错误。(对于它的价值,我尝试删除asset()并仅以传统方式编写路径,但这也不起作用。)

我的 app.js 文件位于 /resources/assets/js/app.js。包含脚本标签 layout.blade.php 的文件位于 /resources/views/layout.blade.php。脚本标签中的代码说:

<script src=" asset('js/app.js')"></script> 

就像视频一样。在 .env 文件中,ASSET_URL='/resources/assets/'。我需要改变什么才能使这项工作?我想不出还有什么可以尝试的!

标签: laravel

解决方案


您需要使用文件的编译版本/resources/assets/js/app.js

npm run dev or npm run watch/public/js/app.js编译将在文件夹中创建相应的 app.js 文件的资产

在你的脚本标签中使用它

<script src="{{ asset('js/app.js') }}"></script> 

推荐阅读