laravel link 到资产 return 404 for src

laravel link to assets return 404 for src

我有这个文件夹结构,我想访问资源中的文件。所以我在做

<link href="{{ asset('sass/app.scss') }}" rel="stylesheet" />
<script src="{{ asset('js/app.js') }}" type="text/javascript"></script>

但它说找不到,所以我想我需要添加 resources 所以我尝试了

<link href="{{ asset('resources/sass/app.scss') }}" rel="stylesheet" />
<script src="{{ asset('resources/js/app.js') }}" type="text/javascript"></script>

我仍然收到两个文件的状态 404。 更新:

我运行这个命令:

let mix = require('laravel-mix');

mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');

tl;dr:您需要 运行 npm run devnpm run watchnpm run prod 将您的资产编译为"usable" js/css 个文件。

您永远不应该 link 您的 resources 文件夹中的资产,它们将不可用。 public 文件夹中的任何内容都可以 link 编辑。

在您的 local/dev 环境中 运行 npm run dev 将您的资产编译到 public 文件夹(请参阅项目根文件夹中的 webpack.mix.js 以准确了解发生什么了)。如果您碰巧做了很多更改,您可以 运行 npm run watch 代替,这样您就不必在每次更改后键入 npm run dev - 如果检测到更改,您的资产将自动编译。

使用 vanilla webpack.mix.js npm run dev 会将 resources/assets/js/app.js 编译到 public/js 文件夹,将 resources/assets/sass/app.scss 编译到 public/css 文件夹,让你使用 public/js/app.jspublic/css/app.css - 这些是您应该 link 到 .blade 文件中的文件:

<link href="{{ asset('css/app.css') }}" rel="stylesheet" />
<script src="{{ asset('js/app.js') }}" type="text/javascript"></script>

您可以在 "Compiling Assets (Mix)" 文档中阅读更多内容 link:

https://laravel.com/docs/7.x/mix