カスタムルートがインデックスに登録されない/クローラービューに表示されない

Continued from: Creating Routes in Discourse and Showing Data

Sorry for necro posting, but this seems to be relevant place to ask…
After following this and other tutorials about creating a route and showing data

I replicated this for a non admin /snack a page, and it works, and it shows my data perfectly!
So it looks something like this:

...
</header>

<h1>donut</h1>

<hr>

<p>delicious!</p>

<footer>...

But i just realized, this page is not indexed, crawled, sitemapped, seo’ed etc etc anywhere, and apparently its because discourse pages have a non js, “crawler view” versions…

So… after following the above tutorial, Where to go from here to show the same data on a “crawler view”, non js version of that page?

Right now non js version looks like this:

...
</header>

empty

<footer>...

It says “empty” with an actual text… that is because it loads default empty.html.erb, right? How to make it show our { name: "donut", description: "delicious!" } instead? :slight_smile:
Tried some stuff from google, but nothing useful…
Stuff like… respond_to do… and format.html… and format.json…
And different kinds of render plain, text, html…
Nothing…

:frowning:

Separate .html.erb template for non js view maybe?
How to name it? Where to place it? How to get { name: "donut", description: "delicious!" } to it?

:frowning:

Help :grinning:
Continued from: Creating Routes in Discourse and Showing Data

投稿が古くなってしまい申し訳ありませんが、質問するには適切な場所だと思われます…
このチュートリアルやその他のチュートリアルに従って、ルートを作成し、データを表示する方法を学びました。

これを管理者権限のない /snack ページに複製したところ、正常に動作し、データも完璧に表示されました!
見た目は以下のようになります。

...
</header>

<h1>donut</h1>

<hr>

<p>delicious!</p>

<footer>...

しかし、このページはどこにもインデックス作成、クロール、サイトマップ登録、SEOなどがされておらず、その理由は、Discourse のページには JavaScript を使用しない「クローラービュー」バージョンがあるからだと判明しました。

では、上記のチュートリアルに従った後、そのページの「クローラービュー」の JavaScript を使用しないバージョンで同じデータを表示するには、次に何をすればよいでしょうか?

現在の JavaScript を使用しないバージョンは以下のようになります。

...
</header>

empty

<footer>...

「empty」という実際のテキストが表示されていますが、これはデフォルトの empty.html.erb が読み込まれているからですよね? { name: "donut", description: "delicious!" } を表示させるにはどうすればよいでしょうか? :slight_smile:
Google で色々試しましたが、何も有用なものはありませんでした…
respond_to do… や format.html… format.json… のようなものです。
render plain, text, html… など、さまざまな種類を試しました。
何も…

:frowning:

JavaScript を使用しないビューのために、別の .html.erb テンプレートが必要でしょうか?
名前はどうすればよいですか? どこに配置すればよいですか? { name: "donut", description: "delicious!" } をそこに表示させるにはどうすればよいですか?

:frowning:

助けてください :grinning:

わかりません。しかし、非JavaScript表示用のテンプレートは間違いなく必要です。JavaScriptを無効にしてページにアクセスするとどうなりますか?

「いいね!」 1

ヘッダー、フッターが表示される、通常の非JSページが表示されます…

しかし、それは予想通りです。すべてのチュートリアルでは、EmberテンプレートにJSONデータを渡す方法しかカバーされていないためです。

「いいね!」 1

JavaScriptのみのページはクロールされないようです。

以下は私が取り組んでいたものですが、確認していただけると良いかもしれません。

「いいね!」 1

なぜそれを見せているのですか?^^
Discourseでルートを作成してデータを表示する チュートリアルについて質問していました…
それに従いました
ルートがあります
データがあります:{ name: "donut", description: "delicious!" }
ルートはJSONを読み取り、そのデータを示します

同じデータをクローラーページに表示するにはどうすればよいですか?

静的ページプラグインの別のバージョンは、どのように役立ちますか?^^多くの静的ページプラグインがありますが、ほとんどは廃止されています。だから…やった…もう一つ…

同じ質問のトピックを見つけました:How to transfer data from plugin to app/views templates?
そして誰も彼を助けませんでした^^
そして、その人の解決策はDiscourseの使用をやめることだったようです^^

それが唯一の「本当の」解決策ですか?:slight_smile:

これは、Discourse のプラグインで、最終的にはクローラーに公開され、独自のルートを持つバックエンド テンプレートをレンダリングします。それが理由です。おそらく、次のことができます。

  1. 使用する
  2. ニーズに合わせて適応させる?

考えてみると、拡張機能のないバニラ プラグインを確認するのが最善です。

しかし、ご自由になさってください。

「いいね!」 1

だから、あなたはそれをどうやるか明確に知っていますね…
それをどうやるか教えてくれませんか? ^^

例えば「ドーナツがおいしい!をクローラーページにも表示するには、この特定のファイルにこの小さなコード行を追加します」のように…
完了…

それとも、ここでは助けるのは違法ですか? ^^
もしそれが複雑すぎたり、ハッキーで、何百行もの読めないゴミコードで20個の新しいファイルを作成する必要があるなら、確かに、代替ソリューションを選択するのは合理的かもしれません… ^^

こんにちは @MrBug さん :slight_smile:

ご期待に沿える回答が得られず申し訳ありませんが、このトピックを確認したところ、あなたの投稿の口調は、ここで期待されているメタでのものとはかけ離れたものになってきています。引き続き参加されたい場合は、人々の問題解決に時間と労力を費やしている人々への敬意を忘れないようにしてください。

このトピックはこれで終了します。

「いいね!」 3