VorwortMit vue-cli gepackte Projekte sind im Allgemeinen SPA-Projekte. Wie wir alle wissen, sind Single-Page-Anwendungen nicht förderlich für SEO. Es gibt zwei Lösungen: SSR (Server-Side-Rendering) und Pre-Rendering. Hier diskutieren wir nur das Pre-Rendering. vue-cli 2.0 VersionInstallieren npm installiere Prerender-Spa-Plugin --Speichern webpack.prod.conf.js fügt etwas Code hinzu const Pfad = require('Pfad') const PrerenderSPAPlugin = require('prerender-spa-plugin') // Plugin importieren const Renderer = PrerenderSPAPlugin.PuppeteerRenderer Plugins:[ // PrerenderSPAPlugin konfigurieren neues PrerenderSPAPlugin({ // Der Pfad der generierten Datei kann auch mit dem von webpakc gepackten Pfad übereinstimmen. staticDir: Pfad.join(__dirname, '../dist'), // Entsprechend Ihrer eigenen Routing-Datei. Wenn beispielsweise der Index Parameter hat, müssen Sie ihn als /index/param1 schreiben. Routen: ['/', '/report','/genius','/index/param1'], // Muss geschrieben werden, 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' }) }) ] In main.js hinzufügen neuer Vue({ el: '#pingce', Router, speichern, Komponenten: { App }, Vorlage: '<App/>', // Mounted hinzufügen, sonst wird die Vorkompilierung nicht ausgeführt mounted () { document.dispatchEvent(neues Ereignis('Render-Ereignis')) } }) Modus festlegen: „Verlauf“ in router.js Führen Sie „npm run build“ aus und prüfen Sie, ob im generierten „Dist“-Verzeichnis ein Ordner vorhanden ist, der jedem Routennamen entspricht. Suchen Sie dann im Verzeichnis nach der Datei „index.html“ und öffnen Sie sie mit der IDE, um zu sehen, ob die Datei den gewünschten Inhalt hat. Jede von Ihnen konfigurierte Route generiert einen Ordner und unter jedem Ordner wird dann eine Datei „index.html“ generiert. vue-cli 3.0 VersionDie 3.0-CLI sieht viel einfacher aus, da die 2.0-Build- und Konfigurationsverzeichnisse entfernt wurden. Wie ändern wir also die Webpack-Konfiguration? Erstellen Sie vue.config.js im Stammverzeichnis und nehmen Sie Ihre Konfiguration vor. Installieren npm installiere Prerender-Spa-Plugin --Speichern vue-config.js hinzufügen const PrerenderSPAPlugin = require('prerender-spa-plugin'); // Plugin importieren const Renderer = PrerenderSPAPlugin.PuppeteerRenderer; 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. // 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 „about“ Parameter hat, müssen Sie es als „/about/param1“ schreiben. Routen: ['/', '/Produkt', '/Über'], //Muss konfiguriert werden, sonst 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' }) }), ], }; } } In main.js hinzufügen neuer Vue({ Router, speichern, rendern: h => h(App), // Der Name von renderAfterDocumentEvent in vue-config.js: 'render-event' muss mit mounted () { übereinstimmen. document.dispatchEvent(neues Ereignis('Render-Ereignis')) } }).$mount('#app') Modus festlegen: „Verlauf“ in router.js Führen Sie „npm run build“ aus und prüfen Sie, ob im generierten „Dist“-Verzeichnis ein Ordner vorhanden ist, der jedem Routennamen entspricht. Zusammenfassen1. Am besten verwenden Sie den Verlaufsmodus zum Routing. Sie können die generierte Datei auch ausführen, ohne sie zu verwenden, aber der Inhalt jeder index.html-Datei ist derselbe. 2. Die Einstellungen in 3.0 sind ungefähr dieselben wie in 2.0, aber es gibt einige Stellen, die Aufmerksamkeit erfordern. Legen Sie in 2.0 staticDir fest: path.join(__dirname,'../dist') Legen Sie in 3.0 staticDir fest: path.join(__dirname,'dist') Wenn diese beiden Einstellungen falsch sind, wird beim Ausführen von „npm run build“ ein Fehler gemeldet. Wenn Sie den Titel und die Metadaten jeder Seite festlegen möchten, wird die Verwendung von [vue-meta-info] empfohlen. Dies ist das Ende dieses Artikels über das Vorrendern von Vue-Einzelseitenanwendungen. Weitere relevante Inhalte zum Vorrendern von Vue-Einzelseitenanwendungen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detailliertes grafisches Tutorial zur Installation der virtuellen CentOS7-Maschine in Virtualbox
>>: Webseitenerstellung für Anfänger: Lernen Sie den Umgang mit dem A-Tag für HTML-Hyperlinks
Founder Type Library ist eine Schriftbibliothek, ...
Nachdem textarea input in Element UI auf automati...
1. Download-Adresse: http://dev.mysql.com/downloa...
Inhaltsverzeichnis V-Modell .sync Der Unterschied...
Heute werde ich den Server nginx verwenden und mu...
In diesem Artikel wird der spezifische Code von V...
Überblick Das Rahmendiagramm dieses Artikels ist ...
Pessimistische Sperre Pessimistische Sperre, betr...
Inhaltsverzeichnis 1. Detaillierte Erklärung der ...
Laderegeln der Require-Methode Laden aus dem Cach...
Beim Schreiben meiner eigenen Demo möchte ich dis...
Inhaltsverzeichnis 1. Konsul-Cluster bereitstelle...
1. Einleitung Wenn Sie früher mit dem Schreiben v...
Kürzlich habe ich auf der B-Station einen Sperrfe...
Anwendungsszenarien: Eine der neuen Anforderungen...