[英]Question Password reset token in Laravel Breeze Inertia React
[英]Route is not defined, laravel breeze inertia react SSR
我正在嘗試在 laravel 中使用SSR慣性。
版本詳情:
Php:8.1.2
Laravel:8.82.0
微風:1.7.1
慣性:0.11.0
Npm:8.1.2
/resources/js/ssr.js
createServer((page) => createInertiaApp({
page,
render: ReactDOMServer.renderToString,
resolve: name => require(`./Pages/${name}`),
setup: ({ App, props }) => <App {...props} />,
}))
/webpack.ssr.mix.js
mix
.options({ manifest: false })
.js('resources/js/ssr.js', 'public/js')
.react()
.alias({ '@': path.resolve('resources/js') })
.webpackConfig({
target: 'node',
externals: [nodeExternals()],
})
/resources/views/app.blade.php
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
...
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
@routes
<script src="{{ mix('js/app.js') }}" defer></script>
@inertiaHead
</head>
<body class="font-sans antialiased">
@inertia
...
</body>
</html>
錯誤:
ReferenceError: route is not defined
at Welcome (/public/js/ssr.js:1413:19)
你試過這個嗎? 它在路由 - 慣性中。
app.config.globalProperties.$route = route
首先你需要得到 ziggy-js
npm install ziggy-js
然后運行
php artisan ziggy:generate
這應該在 resources/js 目錄中創建一個 ziggy.js 文件。 將您的 ssr.js 修改為
import React from 'react'
import ReactDOMServer from 'react-dom/server'
import { createInertiaApp } from '@inertiajs/inertia-react'
import createServer from '@inertiajs/server'
import route from "ziggy-js";
import { Ziggy } from '@/ziggy'
createServer((page) => createInertiaApp({
page,
render: ReactDOMServer.renderToString,
resolve: name => require(`./Pages/${name}`),
setup: ({ App, props }) => {
// Set global function route
global.route = (name, params, absolute, config = Ziggy) => route(name, params, absolute, config);
return <App {...props} />
},
}))
代替
<script src="{{ mix('js/app.js') }}" defer></script>
和
<script src="{{ mix('js/ssr.js') }}" defer></script>
在 /resources/views/app.blade.php
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.