It seems like the title tag is not being replaced with the value you set in your Vue component. Here are a few things you can try:
-
Make sure you have the
@inertiadirective in your layout file. This is required for Inertia to work properly. Here's an example:<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>@inertia</title> <link href="{{ mix('/css/app.css') }}" rel="stylesheet"> @routes </head> <body> @inertia <script src="{{ mix('/js/app.js') }}" defer></script> </body> </html> -
Make sure you're using the
titleprop in your Vue component. Here's an example:<template> <div> <h1>{{ title }}</h1> <p>This is my page content.</p> </div> </template> <script> import { Head, Link } from '@inertiajs/inertia-vue3'; export default { props: { title: String, }, components: { Head, Link, }, }; </script> -
Make sure you're passing the
titleprop to your Vue component. Here's an example:public function index() { return Inertia::render('MyPage', [ 'title' => 'My Title', ]); }
If none of these solutions work, try checking the console for any errors or warnings. You can also try debugging the server-side rendering process by adding some console.log statements to your server-side code.