我正在尝试按照https://medium.com/js-dojo/advanced-server-side-rendering-with-laravel-vue-multi-page-app-486b706e654在页面加载上呈现服务器端代码。一切正常,但是当我尝试使用全局变量“window”或“document”
时我的app.js
代码
import App from './components/App.vue';
import Vue from 'vue';
import { createRouter } from './router'
import { createStore } from './store'
import { sync } from 'vuex-router-sync'
require('./bootstrap');
bootstrap.js正常为
window.axios = require('axios');
window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
我需要全局axios,但php V8Js会出错
V8Js::compileString():612: TypeError: window is undefined
我发现V8Js
没有浏览器变量,我尝试使用npm package browser-env
但是得到了同样的错误。请参见屏幕截图http://nimb.ws/zGDmXO
谢谢
答案 0 :(得分:1)
您必须摆脱windows
和document
的困扰,使用传递给JS
的{{1}}字符串,因为它会寻找V8Js::executeString
和{ {1}},但是在服务器端执行代码的时间并不存在。
在您的document
中
做这样的事情:
window
,在后端则喜欢:
app.js
希望它会起作用