La rotta personalizzata non viene indicizzata/visualizzata nella vista del crawler

Continuato da: Creating Routes in Discourse and Showing Data

Mi scuso per il necro posting, ma questo sembra essere il posto giusto per chiedere…
Dopo aver seguito questo e altri tutorial sulla creazione di una route e sulla visualizzazione dei dati

L’ho replicato per una pagina non admin /snack, e funziona, e mostra i miei dati perfettamente!
Quindi sembra qualcosa del genere:

...\u003c/header\u003e

\u003ch1\u003edonut\u003c/h1\u003e

\u003chr\u003e

\u003cp\u003edelicious!\u003c/p\u003e

\u003cfooter\u003e...\n```

Ma mi sono appena reso conto che questa pagina non è indicizzata, scansionata, mappata nei sitemap, ottimizzata per la SEO, ecc. ecc. da nessuna parte, e apparentemente è perché le pagine di discourse hanno versioni "crawler view" senza js...

Quindi... dopo aver seguito il tutorial sopra, **Dove andare da qui** per mostrare gli stessi dati su una versione "crawler view", senza js di quella pagina?

Al momento la versione non js appare così:
![image|570x244](upload://wRMiDckoPB1tfwBvGNR2J05z9U2.png)

…\u003c/header\u003e

vuoto

\u003cfooter\u003e…\n```

Dice “vuoto” con un testo effettivo… questo perché carica di default empty.html.erb, giusto? Come possiamo farci mostrare il nostro { name: "donut", description: "delicious!" } invece? :slight_smile:
Ho provato alcune cose da google, ma niente di utile…
Cose come… respond_to do… e format.html… e format.json…
E diversi tipi di render plain, text, html…
Niente…

:frowning:

Un template separato .html.erb per la vista non js magari?
Come si chiama? Dove si posiziona? Come ottenere { name: "donut", description: "delicious!" } al suo interno?

:frowning:

Aiuto :grinning:

Non lo so. Ma sicuramente hai bisogno di un template non js. Cosa succede se visiti la pagina con javascript disattivato?

Mostra la solita pagina non js… intestazione… piè di pagina…

Ma questo è quanto previsto, dato che ogni tutorial copre solo come fornire dati json a un template ember…

Le pagine solo JavaScript non vengono indicizzate, a quanto pare.

Potresti voler dare un’occhiata a qualcosa su cui stavo lavorando:

Perché mi stai mostrando questo? ^^
Stavo chiedendo del tutorial Creare route in Discourse e mostrare dati
L’ho seguito
Ho una route
Ho dati: { name: "donut", description: "delicious!" }
La route legge json e mostra quei dati

Come posso ottenere gli stessi dati, alla pagina del crawler?

In che modo un’altra versione del plugin per pagine statiche mi aiuta con questo? ^^ Ci sono un certo numero di plugin per pagine statiche là fuori, per lo più morti e abbandonati. Quindi… evvai… un altro…
Ho trovato un argomento con la stessa domanda, How to transfer data from plugin to app/views templates?
E nessuno lo ha aiutato neanche lui ^^
E sembra che la soluzione del ragazzo sia stata smettere di usare discourse ^^

È l’unica “vera” soluzione? :slight_smile:

È un plugin per Discourse che alla fine esegue il rendering di template back-end esposti ai crawler e con i propri percorsi, questo è il motivo. Forse potresti:

  1. usarlo
  2. adattarlo alle tue esigenze?

Pensandoci bene, ti conviene dare un’occhiata al plugin vanilla, senza le estensioni:

Ma come preferisci.

Quindi sai chiaramente come fare…
Non puoi semplicemente mostrare come si fa? ^^

Come “per far apparire ‘donut delicious!’ anche sulla pagina del crawler, aggiungi questa piccola riga di codice a questo file specifico”…
Fatto…

O è illegale aiutare qui? ^^
Se è troppo complesso o “hackish” e richiede la creazione di 20 nuovi file con centinaia e centinaia di righe di codice illeggibile, allora certo, potrebbe essere ragionevole optare per soluzioni alternative… ^^

Ciao @MrBug :slight_smile:

Mi dispiace che tu non stia ottenendo le risposte che speravi, ma dopo aver esaminato questo argomento, il tono dei tuoi post è diventato sempre più fuori luogo rispetto a quanto ci aspettiamo qui su meta. Se desideri continuare a partecipare, potresti per favore ricordare di avere un po’ di rispetto per coloro che dedicano il loro tempo e i loro sforzi per aiutare le persone con i loro problemi.

Chiuderò questo argomento ora.