L'itinéraire personnalisé n'est pas indexé/affiché dans la vue du crawler

Continué de : Creating Routes in Discourse and Showing Data

Désolé pour le déterrage, mais cela semble être le bon endroit pour poser la question…
Après avoir suivi ce tutoriel et d’autres sur la création d’une route et l’affichage de données

Je l’ai reproduit pour une page non admin /snack, et cela fonctionne, et cela affiche mes données parfaitement !
Cela ressemble donc à ceci :

...
</header>

<h1>donut</h1>

<hr>

<p>delicious!</p>

<footer>...

Mais je viens de réaliser que cette page n’est indexée, explorée, ajoutée au sitemap, optimisée pour le SEO, etc. nulle part, et apparemment, c’est parce que les pages Discourse ont des versions “crawler view” sans JS…

Alors… après avoir suivi le tutoriel ci-dessus, Où aller à partir d’ici pour afficher les mêmes données sur une version “crawler view”, sans JS de cette page ?

Actuellement, la version sans JS ressemble à ceci :

...
</header>

empty

<footer>...

Il est indiqué “empty” avec un texte réel… c’est parce qu’il charge le fichier default empty.html.erb, n’est-ce pas ? Comment faire pour qu’il affiche notre { name: "donut", description: "delicious!" } à la place ? :slight_smile:
J’ai essayé des choses trouvées sur Google, mais rien d’utile…
Des choses comme… respond_to do… et format.html… et format.json…
Et différentes sortes de render plain, text, html…
Rien…

:frowning:

Un modèle séparé .html.erb pour la vue sans JS peut-être ?
Comment le nommer ? Où le placer ? Comment y faire parvenir { name: "donut", description: "delicious!" } ?

:frowning:

Aidez-moi :grinning:

Je ne sais pas. Mais vous avez absolument besoin d’un template non js. Que se passe-t-il si vous visitez la page avec JavaScript désactivé ?

1 « J'aime »

Il affiche la page non js habituelle… en-tête… pied de page…

Mais c’est comme prévu, puisque tous les tutoriels ne couvrent que la manière de fournir des données json à un modèle ember…

1 « J'aime »

Les pages JavaScript uniquement ne sont pas explorées, à mon avis.

Vous pourriez vouloir jeter un œil à quelque chose sur lequel je travaillais :

1 « J'aime »

Pourquoi m’affiches-tu ça ? ^^
Je posais des questions sur le tutoriel Créer des routes dans Discourse et afficher des données
Je l’ai suivi
J’ai une route
J’ai des données : { name: "donut", description: "delicious!" }
La route lit du json et affiche ces données

Comment obtenir ces mêmes données, sur la page du crawler ?

Comment une autre version du plugin de page statique m’aide-t-elle avec ça ? ^^ Il existe un certain nombre de plugins de page statique, la plupart morts et abandonnés. Alors… ouais… un autre…

J’ai trouvé un sujet avec la même question, How to transfer data from plugin to app/views templates?
Et personne ne l’a aidé non plus ^^
Et il semble que la solution du gars était d’arrêter d’utiliser discourse ^^

Est-ce la seule “vraie” solution ? :slight_smile:

C’est un plugin pour Discourse qui, au final, rend des modèles back-end exposés aux robots d’exploration et qui ont leurs propres routes, c’est la raison. Peut-être pourriez-vous :

  1. l’utiliser
  2. l’adapter à vos besoins ?

En y réfléchissant, vous feriez mieux de consulter le plugin vanilla, sans les extensions :

Mais comme vous voudrez.

1 « J'aime »

Alors vous savez clairement comment faire…
Ne pourriez-vous pas simplement montrer comment faire ? ^^

Comme « pour faire apparaître « donut delicious ! » sur la page du crawler aussi, ajoutez cette petite ligne de code à ce fichier spécifique »…
Terminé…

Ou est-il illégal d’aider ici ? ^^
Si c’est trop complexe ou qu’il s’agit d’un hack et qu’il faut créer 20 nouveaux fichiers avec des centaines et des centaines de lignes de code illisibles, alors bien sûr, il pourrait être raisonnable d’opter pour des solutions alternatives… ^^

Salut @MrBug :slight_smile:

Je suis désolé que vous n’obteniez pas les réponses que vous espériez, mais après avoir examiné ce sujet, le ton de vos publications est devenu de plus en plus inapproprié par rapport à ce que nous attendons ici sur meta. Si vous souhaitez continuer à participer, pourriez-vous s’il vous plaît vous souvenir de respecter ceux qui consacrent leur temps et leurs efforts à aider les gens dans leurs problèmes.

Je vais clore ce sujet maintenant.

3 « J'aime »