Локализованные маршруты проблемы с приложениями Laravel Inertia SSRPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Локализованные маршруты проблемы с приложениями Laravel Inertia SSR

Сообщение Anonymous »

Я хочу иметь, казалось бы, простой результат:

[*] Веб -сайт на двух языках со структурой URL, такими как/en/blog/article1 и/de/blog/seite1
[*] Содержание страницы. но оказывается невероятно трудно достичь. /de/blog и/de/blog/setie1 . Так что для пользователей и для меня во время разработки, похоже, все в порядке
[*] Однако, поскольку Google видит/блог и/blog/article1 , он пытается посетить эти перенаправляется на/de/blog , что проблематично, но работает. Реальная проблема заключается в/blog/article1 , которая перенаправлена ​​на локал по умолчанию/de/blog/article1 и бросает 404 , поскольку в немецком языке правильный URL/de/blog/seite1 (статья1. с включенным SSR. Эта настройка работает без проблем, пока вы не начнете с локализации.
Для локализации я установил https://github.com/mcamara/laravel-localization.
Hacky Fix
Я нашел, что неверные ssr.jsx :

Код: Выделить всё

import { Ziggy } from '@/ziggy';
global.route = (name, params, absolute, config = Ziggy)
=> route(name, params, absolute, config);
После нескольких дней попыток разобраться, мне удалось вывести локализованные URL -адреса в SSR, вытащив их из реквизита, где они поставляются из harderInertiaRequest Middleware:

Код: Выделить всё

$ziggy = new Ziggy($group = null, $request->url());
return [
// Add in Ziggy routes for SSR
'ziggy' => $ziggy->toArray(),
...
]
и в ssr.jsx :

Код: Выделить всё

const ziggyConfig = { ...props.initialPage.props.ziggy };
global.route = (name, params, absolute)
=> route(name, params, absolute, ziggyConfig);
< /code>
Это сделало URL -адреса локализоваться, но работал только на домашней странице, потому что все URL -адреса внезапно стали относительными. Даже установление абсолюта True не помогла. URL стали, например, /en/contact/en/blog 
Если я просматривал ссылку на блог, находясь на странице/en/contact .const ziggyConfig = { ...props.initialPage.props.ziggy };
ziggyConfig.url = ziggyConfig.url.split('/').slice(0, 3).join('/');
global.route = (name, params) => route(name, params, true, ziggyConfig);
< /code>
, который, очевидно, является опасным взломом и, вероятно, будет иметь побочные эффекты. Тем не менее, это в настоящее время работает, и все URL -адреса кажутся правильными. То, что я вижу на странице локально во время разработки, и то, что я вижу на производстве, не то же самое, что видят поисковые системы. Это действительно опасно. Как можно проверить эту настройку SSR? Как я могу верить, что веб -сайт работает, если я даже не вижу, как его видят поисковые системы? Любой совет здесь был бы очень полезны.>

Подробнее здесь: https://stackoverflow.com/questions/796 ... a-ssr-apps
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»