Da der Datenbindungsmechanismus von Vue und anderen js zum Anzeigen von Seitendaten verwendet wird, ist das vom Crawler erhaltene HTML die Modellseite und nicht die gerenderte Seite mit den endgültigen Daten, und die Suchmaschine geht nicht zurück, um das angeforderte js auszuführen. Alle Vue-Projekte verwenden Ajax, um Daten anzufordern, und der Engine-Crawler kann beim Aufrufen der Seite keinen Textinhalt abrufen. Derzeit verwenden die meisten Lösungen kein Ajax zum Rendern von Daten, sondern serverseitiges Rendering, das sogenannte SSR. Methode 1: Verwenden Sie das Prerender-Spa-Plugin, um Einzelseitenanwendungen auf mehrere Seiten zu packen Nachdem das traditionelle Vue mithilfe des Vue-CLI-Gerüsts erstellt wurde, wird mit „npm run build“ der endgültige HTML-Code verpackt und generiert, der online gestellt werden soll. Es gibt nur eine Datei index.html im Verzeichnis und diese HTML-Datei hat keinen Inhalt. Es gibt nur ein Div mit der ID-App, das zum Mounten der Vue-Instanz verwendet wird. Lösung Hier möchte ich erwähnen, dass Sie Puppeteer möglicherweise über npm installieren müssen, wenn beim Verpacken ein Fehler auftritt (das Ding ist etwas groß, ungefähr 300 MB). Der erste Schritt besteht darin, vue.config.js über das Prerender-Spa-Plugin zu konfigurieren. npm installiert prerender-spa-plugin --save Dieses Ding ist ein Plug-In eines Drittanbieters, das von Vue verwendet wird, um Einzelseitenanwendungen auf mehrere Seiten zu packen. Konfigurieren Sie es nach der Installation in vue.config.js wie folgt const PrerenderSPAPlugin = erforderlich('prerender-spa-plugin'); const Renderer = PrerenderSPAPlugin.PuppeteerRenderer; const webpack = erfordern('webpack'); const path = require('Pfad'); modul.exporte = { konfigurierenWebpack: config => { wenn (Prozess.env.NODE_ENV !== 'Produktion') zurückgeben; zurückkehren { Plugins: [ neues PrerenderSPAPlugin({ // Der Pfad der generierten Datei kann auch mit dem von webpakc gepackten Pfad übereinstimmen. //Der folgende Satz ist sehr wichtig! ! ! // Dieses Verzeichnis kann nur eine Ebene haben. Wenn die Verzeichnisebene größer als eine Ebene ist, wird während der Generierung keine Fehlermeldung angezeigt und es bleibt einfach beim Vorrendern hängen. staticDir: Pfad.join(__dirname,'dist'), // Entsprechend Ihrer eigenen Routing-Datei. Wenn beispielsweise a Parameter hat, müssen Sie es als /a/param1 schreiben. Routen: ['/','/about','/store_vuex','/cssAnimate','/connectMongoDB','/childParent','/child1','/elementUI'], // Das ist sehr wichtig. Wenn dieser Abschnitt nicht konfiguriert ist, wird keine Vorkompilierung durchgeführtrenderer: new Renderer({ injizieren: { foo: "Leiste" }, kopflos: falsch, // In main.js, document.dispatchEvent(new Event('render-event')), sollten die Ereignisnamen der beiden übereinstimmen. renderAfterDocumentEvent: 'Renderereignis' }) }) ], }; } } Ändern Sie dann den Vue-Routing-Modus in Verlauf neuer Vue({ Router, speichern, rendern: h => h(App), montiert () { document.dispatchEvent(neues Ereignis('Render-Ereignis')) } }).$mount('#app') npm run build Jetzt sieht die Verzeichnisstruktur nach dem Verpacken so aus, ebenso wie der index.html-Code jedes Ordners, Warum gibt es so viele JS und CSS? Weil beim Verpacken von vue-cli jedes Skript und jedes Stil-Tag der .vue-Datei in ein entsprechendes JS und CSS gepackt wird, auch wenn Sie nichts in das Tag schreiben. Der zweite Schritt besteht darin, die kleineren js- und css-Dateien zu komprimieren und zusammenzuführen Ich habe die Vue-CLI-Dokumentation durchsucht, konnte aber keine relevanten Informationen finden und bin daher zu Webpack gewechselt. const webpack = erfordern('webpack'); neues webpack.optimize.MinChunkSizePlugin({ minChunkSize: 10000 // Halten Sie die Blockgröße über dem angegebenen Größenlimit, indem Sie Blöcke zusammenführen, die kleiner als minChunkSize sind }), Dann verwendet Methode 2: Vue SSR (Server-Side Rendering)Kurz gesagt, die Komponenten, die ursprünglich im Browser erstellt werden sollten, werden zuerst auf dem Server erstellt, dann wird das entsprechende HTML generiert und direkt an den Browser gesendet und schließlich werden diese statischen Tags als vollständig interaktive Anwendungen auf dem Client „aktiviert“. Vor- und Nachteile von Vue SSR im Vergleich zu SPA (Single Page Application) Schnellere Bereitstellung von Inhalten, insbesondere bei langsamen Netzwerken oder auf langsamen Geräten. 2. Nachteile 2) Weitere Anforderungen für die Einrichtung und Bereitstellung des Builds. Im Gegensatz zu vollständig statischen Single-Page-Anwendungen (SPAs), die auf jedem statischen Dateiserver bereitgestellt werden können, erfordern serverseitig gerenderte Anwendungen zur Ausführung einen Node.js-Server. 3) Höhere serverseitige Belastung. Das Rendern einer vollständigen Anwendung in Node.js beansprucht offensichtlich mehr CPU als das bloße Bereitstellen statischer Dateien. Wenn Sie also mit hohem Datenverkehr rechnen, bereiten Sie sich entsprechend auf die Serverlast vor und verwenden Sie Caching-Strategien mit Bedacht. Dies ist das Ende dieses Artikels mit der detaillierten Erläuterung der SEO-Optimierungsmethoden für Vue-Entwicklungswebsites. Weitere relevante Inhalte zur Vue-SEO-Optimierung finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
>>: So fügen Sie dem Tomcat-Dienst einen Java-Startbefehl hinzu
Im Allgemeinen bietet MySQL standardmäßig eine Vi...
Das leistungsstarke Tool cgroup im Kernel kann ni...
Inhaltsverzeichnis Vorwort 1. Grundkenntnisse der...
In diesem Artikel werden hauptsächlich drei Metho...
1. Umweltanforderungen 1. Docker 17 und höher wur...
Umfeld Hostname IP-Adresse Aufschlag Jenkins 192....
Dieser Artikel stellt hauptsächlich den relevante...
Heute habe ich mysql-5.7.18-winx64.zip von der of...
Szenario: Die Daten in einer Tabelle müssen mithi...
Funktion: Datenanzeige, Tabellenanwendungsszenari...
MySQL zeichnet zeitaufwändiges SQL auf MySQL kann...
IE8 wird mehrere Kompatibilitätsmodi haben. Der IE...
1. Ich habe vorher die Version QT5.13 heruntergel...
Direkt codieren: Wählen Sie „bigint unsigned“ als...
Das Installationstutorial der komprimierten Versi...