【问题标题】:Laravel 5.4 reference to Mix CSS fileLaravel 5.4 参考 Mix CSS 文件
【发布时间】:2017-07-22 17:06:50
【问题描述】:

我正在尝试通过 Laravel 5.4 中的 Mix(以前是 Elixer)(使用 https://laravel.com/docs/5.4/mix)设置一个 SASS 到 CSS 编译器。一切正常,它可以编译,我可以通过 npm 设置一个观察者,但通过 views/layout/app.blade.php 文件引用它,例如:

 <link rel="stylesheet" href="{{ mix('css/app.css') }}">

不起作用。在我的浏览器中,它当然显示为:

<link rel="stylesheet" href="/css/app.css">

这是错误的路径。它应该引用http://localhost/website/public/css/app.css,但是更改上面的 Mix 代码中的任何内容都会产生 Laravel 错误。

Unable to locate Mix file: /website/public/css/app.css. 
Please check your webpack.mix.js output paths and try again.

我做错了什么?我是否需要在某处设置基本路径,我的 .htaccess 是否错误,或者..?谢谢你的任何答案。

【问题讨论】:

  • 为什么不在 {{ mix('css/app.css') }} 之前添加/website/public
  • 作为回应,它的反应是正常的。 Laravel 假设指向公用文件夹,因此您需要环境直接指向公用文件夹(如果您已经重定向到父文件夹,可能会更改您的 htaccess)
  • 您使用的是哪个网络服务器?

标签: php laravel sass routes laravel-mix


【解决方案1】:

mix() 助手生成的路径是正确的。您的域应直接指向“公共”目录。 “公共”目录之上的所有内容都不应通过 HTTP 访问(这不安全)。

所以你需要创建新域(例如project.local)并将其指向 Laravel 的公共目录(例如/home/user/website/public/),或者只需更改 Web 服务器配置中的默认根路径(如果是 Apache,则为 DocumentRoot)。然后 URL http://project.local/css/app.css 将起作用。

【讨论】:

    【解决方案2】:

    webpack.mix.js文件中配置你需要的文件mix.js('resources/js/app.js', 'public/js') .postCss('resources/css/app.css', 'public/css', []); 在执行命令npm run watch 进行混合之后。

    然后你可以在任何你想要的地方添加你的css文件 &lt;link rel="stylesheet" href="{{ asset('css/app.css') }}"/&gt;

    【讨论】: