<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\File;
class AppController extends Controller
{
private function render() {
$renderer_source = File::get(base_path('node_modules/vue-server-renderer/basic.js'));
$app_source = File::get(public_path('js/entry-server.js'));
$v8 = new \V8Js();
ob_start();
$v8->executeString('var process = { env: { VUE_ENV: "server", NODE_ENV: "production" }}; this.global = { process: process };');
$v8->executeString($renderer_source);
$v8->executeString($app_source);
return ob_get_clean();
}
public function get() {
$ssr = $this->render();
return view('app', ['ssr' => $ssr]);
}
}
我关注https://dzone.com/articles/server-side-rendering-with-laravel-amp-vuejs-25此页面 安装了V8Js。 但$ v8-&gt; executeString($ app_source);发一个错误 V8Js :: compileString():14026:ReferenceError:窗口未定义。
我不知道如何处理这个错误..
答案 0 :(得分:0)
问题是使用window对象的bootstrap.js。 THX!