fix(ssr): добавить route mixin для SSR совместимости Ziggy
- Создан RouteMixin.js для предоставления route() всем компонентам - Обновлён ssr.js с правильным импортом Router и созданием route функции - Исправлен BackButton.vue с проверкой this.route перед использованием - Добавлена обработка ошибок для route() с fallback на '#' Решает ошибку: ReferenceError: route is not defined at Proxy.resolvedLink Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
This commit is contained in:
+4
-12
@@ -5,6 +5,7 @@ import { renderToString } from '@vue/server-renderer'
|
||||
import { createSSRApp, h } from 'vue'
|
||||
import { ZiggyVue } from '../../vendor/tightenco/ziggy/dist/vue.m';
|
||||
import { default as Router } from '../../vendor/tightenco/ziggy/dist/index.m.js';
|
||||
import { createRouteMixin } from './mixins/RouteMixin.js';
|
||||
|
||||
createServer(page =>
|
||||
createInertiaApp({
|
||||
@@ -33,18 +34,9 @@ createServer(page =>
|
||||
ziggyConfig.location = new URL(process.env.APP_URL || 'http://localhost');
|
||||
}
|
||||
|
||||
// Создаем функцию route с правильной конфигурацией
|
||||
const route = (name, params, absolute, config) => {
|
||||
const ziggyConfigForRoute = {
|
||||
...page.props.ziggy,
|
||||
location: ziggyConfig.location,
|
||||
};
|
||||
const router = new Router(name, params, absolute, ziggyConfigForRoute);
|
||||
return router.toString();
|
||||
};
|
||||
|
||||
// Делаем route доступным глобально
|
||||
ssrApp.config.globalProperties.route = route;
|
||||
// Добавляем route mixin для всех компонентов
|
||||
const routeMixin = createRouteMixin(page, Router);
|
||||
ssrApp.mixin(routeMixin);
|
||||
|
||||
return ssrApp
|
||||
.use(plugin)
|
||||
|
||||
Reference in New Issue
Block a user