Sitemap nicht erstellt, bis der Server in Meteor neu gestartet wird

8

Ich benutze Meteor, um ein einfaches Blog-System zu erstellen. Für Sitemaps-Dateien verwende ich dieses Paket.

Ich habe einige Initialisierungsdaten in der Server-Startfunktion hinzugefügt (Erstellen eines Posts) und unter dem Code ( server / sitemaps.js ) auf dem Server verwendet, um Sitemaps für jede Kategorie zu erstellen (zB sitemap1.xml) Kategorie und etc):

%Vor%

Und ich habe Start wie folgt: ( server / startup.js )

%Vor%

Aber Sitemaps existierten nicht bis zum Serverneustart (meine robots.txt Dateien sind auch leer), aber wenn der Server neu gestartet wurde, wurden Sitemaps und robots.txt Inhalt für mich erstellt.

Ich denke Beiträge nach sitemaps.js eingefügt, aber was ist das Problem Jungs und wie das zu beheben?

Neuer Versuch:

Ich versuche eine neue Lösung wie unten, aber dieser Code hat auch nicht funktioniert. (Ich möchte separate Sitemap-Datei für jede 10000 Kategorie erstellen, um große Sitemap und Google Sitemap Fehler zu verhindern):

%Vor%

robots.txt zeigt die Sitemap-Dateien korrekt an, aber die Sitemap ist leer:

%Vor%

Wann läuft sitemaps.add ()? Ich denke es tut beim Serverneustart aber Neuer Versuch wurde mich enttäuscht und ich denke meine Vermutung ist falsch und wenn Sitemaps.add () ausgeführt wurde, warum ist es leer.

    
b24 14.08.2015, 06:43
quelle

2 Antworten

3

Ihr Problem scheint die Ordnerstruktur zu sein. Sie haben gesagt, Sie haben /server/sitemaps.js und /server/startup.js und Sie möchten, dass Sitemaps nach dem Start ausgeführt werden, aber die Sache ist Meteor wird diese Dateien alphabetisch laufen, so kommt Sitemap vor dem Start. Wenn Sie Ihre startup.js in einen lib-Ordner wie /server/lib/startup.js stellen, erhalten Sie die gewünschten Ergebnisse, da Meteor lib Ordner vor anderen ausführt.

    
Marcelo Schmidt 01.09.2015, 13:28
quelle
1

Es ist normales Verhalten, der Code bei Meteor.startup wird nur einmal beim App-Start ausgeführt. Wenn Sie diese Funktion erneut ausführen möchten, müssen Sie entweder die Meteormethode verwenden, um die Funktion vom Client aus aufzurufen, oder Sie können etwas wie cron job verwenden, um Wiederholungsjobs auszuführen. Dies ist ein tolles Paket. Ссылка

    
Mark Uretsky 14.08.2015 20:25
quelle

Tags und Links