Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图像具有绝对路径-如何在LaravelMix中使用子目录URL_Laravel_Vue.js_Laravel Mix - Fatal编程技术网

图像具有绝对路径-如何在LaravelMix中使用子目录URL

图像具有绝对路径-如何在LaravelMix中使用子目录URL,laravel,vue.js,laravel-mix,Laravel,Vue.js,Laravel Mix,My Laravel Mix应用程序将放置在服务器的子目录中,如: my vue组件中的图像路径是从 <img id="logo" src="../assets/img/pat_logo.png"> 但这不会改变输出路径。它仍然是/images/pat_logo.png。我希望它现在是/pat os server/public/images/pat_logo.png。对setPublicPath和setResourceRoot使用包括“/”和“”的其他值不会造成任何差异 我在调用其

My Laravel Mix应用程序将放置在服务器的子目录中,如:

my vue组件中的图像路径是从

<img id="logo" src="../assets/img/pat_logo.png">
但这不会改变输出路径。它仍然是/images/pat_logo.png。我希望它现在是/pat os server/public/images/pat_logo.png。对setPublicPath和setResourceRoot使用包括“/”和“”的其他值不会造成任何差异

我在调用其他方法之前放置了路径设置方法,因此我当前的webpack.mix.js如下所示:

mix.setPublicPath('/pat-os-server/public/');
mix.setResourceRoot('/pat-os-server/public/');
const { mix } = require('laravel-mix');

mix.setPublicPath('/pat-os-server/public/');
mix.setResourceRoot('/pat-os-server/public/');
mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');
const { mix } = require('laravel-mix');
mix
  .setResourceRoot("")
  .js('resources/assets/js/app.js', 'public/js')
  .sass('resources/assets/sass/app.scss', 'public/css');
如何获取图像的相对输出路径或更改绝对路径

谢谢你的支持

编辑

我刚刚意识到,在我的laravel项目中创建了一个子文件夹“pat os server”,并将所有编译的项目文件复制到此子文件夹中。看来我误解了setPublicPath设置


我不想将输出文件放在另一个文件夹中。我希望我的项目中的URL指向正确的路径,该路径不是主机/根目录,而是子目录。

经过几个小时的搜索和试用,回答了我自己的问题

现在,我的webpack.mix.js如下所示:

mix.setPublicPath('/pat-os-server/public/');
mix.setResourceRoot('/pat-os-server/public/');
const { mix } = require('laravel-mix');

mix.setPublicPath('/pat-os-server/public/');
mix.setResourceRoot('/pat-os-server/public/');
mix.js('resources/assets/js/app.js', 'public/js')
   .sass('resources/assets/sass/app.scss', 'public/css');
const { mix } = require('laravel-mix');
mix
  .setResourceRoot("")
  .js('resources/assets/js/app.js', 'public/js')
  .sass('resources/assets/sass/app.scss', 'public/css');
这将导致相对URL的优化:

<img id="logo" src="images/pat_logo.png">
或者使用其他类似于
mix.setResourceRoot(“anything/there/”)


干杯