You can take a different approach, more in line with the way you use asset
in the blade templates.
Inside the head section of the layout create a global reference to the base asset path, something like this
<script>
window._asset = '{{ asset('') }}';
</script>
Next step is to create a Vue mixin. In my case, a trans.js
file with the following content:
module.exports = {
methods: {
asset(path) {
var base_path = window._asset || '';
return base_path + path;
}
}
}
Make sure you include it after Vue, for example:
window.Vue = require('vue');
Vue.mixin(require('./asset'));
and then you can use it inside all your Vue components. Your original code would look like this
<img :src="asset('admin/images/users/avatar-1.jpg')" width="35 px" height="23px">
Note the lack of {{
and the addition of :
in this case, since it is used as an attribute value.