自定义路线未被索引/在爬虫视图中显示

接续自:Creating Routes in Discourse and Showing Data

抱歉挖坟,但这里似乎是提问的合适地方……
在遵循了本教程和其他关于创建路由和显示数据的教程后

我为非管理员创建了一个 /snack 页面,它运行正常,并且完美地显示了我的数据!
看起来是这样的:

...
</header>

<h1>donut</h1>

<hr>

<p>delicious!</p>

<footer>...

但我刚刚意识到,这个页面没有被索引、爬取、加入站点地图、进行 SEO 等等,显然是因为 discourse 页面有非 JS 的“爬虫视图”版本……

那么……在遵循了上面的教程之后,接下来该怎么做才能在那个页面的“爬虫视图”非 JS 版本中显示相同的数据呢?

现在非 JS 版本看起来是这样的:

...
</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:

为非 JS 视图单独创建一个 .html.erb 模板也许可以?
该如何命名?放在哪里?如何将 { name: "donut", description: "delicious!" } 传递给它?

:frowning:

请帮忙 :grinning:

我不知道。但你肯定需要一个非 js 模板。如果关闭 JavaScript 访问该页面会发生什么?

1 个赞

它显示了通常的非 js 页面……页眉……页脚……

但这符合预期,因为每个教程都只涵盖如何将 json 数据馈送到 ember 模板……

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:

很抱歉您没有得到想要的答复,但在审查了此主题后,您的帖子语气已越来越偏离我们在此元社区(meta)上所期望的风格。如果您想继续参与,能否请您记住要尊重那些花费时间和精力帮助他人解决问题的人。

我现在将关闭此主题。

3 个赞