如何从javascript读取mix-manifest.json
我使用laravel mix缓存了我的图像。对于blade中的图像,它是有效的。然而,我不知道如何从javascript访问那个版本化的路径 是否可以从编译的javascript中读取如何从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
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')
,正如您所说,但不能访问服务器:/知道如何使用服务器做到这一点吗?