如何从javascript读取mix-manifest.json

如何从javascript读取mix-manifest.json,javascript,laravel,laravel-mix,Javascript,Laravel,Laravel Mix,我使用laravel mix缓存了我的图像。对于blade中的图像,它是有效的。然而,我不知道如何从javascript访问那个版本化的路径 是否可以从编译的javascript中读取mix manifest.json?这样我就可以创建一个mixin并获得版本化的路径 例如,在我的mix-manifest.json中 “/images/hello.svg”:“/images/hello.svg?id=0360DE485C6835550DA”, 我想,如果我能从我编译的javascript中读取m

我使用laravel mix缓存了我的图像。对于blade中的图像,它是有效的。然而,我不知道如何从javascript访问那个版本化的路径

是否可以从编译的javascript中读取
mix manifest.json
?这样我就可以创建一个mixin并获得版本化的路径

例如,在我的mix-manifest.json中

“/images/hello.svg”:“/images/hello.svg?id=0360DE485C6835550DA”,

我想,如果我能从我编译的javascript中读取
mix manifest.json
,我就能创建一个助手方法,比如

export default {
  methods: {
     mixPath(path) {
        let manifestObj = // read mix-manifest.json
        return manifestObj[path];
     }
  }
}

我可以使用

const vm = this;

if (!Vue.prototype.BROWSER_BUILD) {
     let path = require("path");
     this.manifestPaths = JSON.parse(require('fs').readFileSync(path.resolve('./mix-manifest.json'), 'utf8'));
} else {
     axios.get('/mix-manifest.json').then(json => {
        vm.manifestPaths = json.data
     })
}
方法是:

methods: {
    mix(path) {
        if (typeof this.manifestPaths[path] == 'undefined') {
            return this.manifestPaths[path];
        }

        return path;
    }
}


如果您知道更好的方法,我很乐意知道:)

混合清单在公共目录中,因此
/mix manifest.json
应该足以访问它。您可能可以通过AJAX阅读此内容,但这意味着您使用它的函数都将是异步的。我正在使用SSR,因此客户端可以访问
axios.get('/mix manifest.json')
,正如您所说,但不能访问服务器:/知道如何使用服务器做到这一点吗?