【发布时间】:2023-03-23 04:46:01
【问题描述】:
我正在使用 Laravel 5.6 版和 vue.js 2.0 版开发一个多页 Web 应用程序 (MPA)。
我正在使用多个 vue 组件,例如Demo.vue 并在 php Blade 文件中使用该组件。
问题是当我尝试查看页面视图源 (ctrl+u) 时,它仅显示 php Blade 文件中使用的 html 标签,但不显示 vue 组件的 HTML 元素。
我希望 Vue 组件 HTML 元素也显示在页面视图源中,因为我的 google 抓取主要依赖于使用的 vue 组件。你能帮我解决这个问题吗?
同时附上页面源截图和示例代码sn-p。
-
Demo.vue 文件代码
<template> <div class="container"> <div class="row justify-content-center"> <div class="col-md-8"> <div class="card card-default"> <div class="card-header">Example Component</div> <div class="card-body"> I'm an example component. </div> </div> </div> </div> </div> </template> <script> export default { mounted() { console.log('Component mounted.') } } </script> -
App.js
require('./bootstrap'); window.Vue = require('vue'); window.axios = require('axios'); import VModal from 'vue-js-modal'; Vue.use(VModal); Vue.component('demo-component', require('./components/Demo.vue')); const app = new Vue({ el: '#app', }); -
Layout.blade.php
<!DOCTYPE html> <html lang="{{ app()->getLocale() }}"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <form method="POST" action="path_to_action"> <meta name="csrf-token" content="{{ csrf_token() }}"> </form> <!--<link href="css/style.css" rel="stylesheet">--> <link href="https://fonts.googleapis.com/css?family=Roboto:300,500,700,900" rel="stylesheet"> <link href="/css/app.css" rel="stylesheet" type="text/css"> </head> <body id="body"> <div class="content" id="app"> <demo-component></demo-component> </div> <script type="text/javascript" src="/js/app.js"></script> </body> </html>
即我们希望在视图源中呈现 HTML 代码。
我们甚至尝试查看关于 SSR 的各种文章,但这些示例使用静态内容显示,而我们的数据是来自数据库的动态数据,并且是一个多页面应用程序。
例如我们尝试了以下方法:-
https://vuejsdevelopers.com/2017/11/06/vue-js-laravel-server-side-rendering/
以上文章仅针对静态数据显示...
谢谢, 查理兹
【问题讨论】:
-
您是否转译了
App.js文件?您的浏览器控制台中是否有任何错误? -
为什么要实现这个?在视图源中显示渲染的 HTML 有什么好处吗?