【发布时间】:2017-12-25 09:01:42
【问题描述】:
Rails 新手。
我正在尝试使用带有 Rails 应用程序的 Twitter Widgets 生成器来显示嵌入式网格时间线。
我的问题是,当我将以下生成的代码粘贴到视图中时,我只能在 localhost:3000 的视图中显示一个链接:
<a class="twitter-grid" data-lang="en" data-limit="6" data-dnt="true" href="https://twitter.com/TwitterDev/timelines/539487832448843776">National Park Tweets</a>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
很明显,Rails 正在为页面加载剥离 JS。
在来到这里之前,我阅读了试图自己解决这个问题的资源(以及其他几篇博客文章)。没有足够的代表发布所有链接:
- 资产管道 - RubyonRails.org
- Unholy Rails:向 Rails 添加 JavaScript - RailsApps
- 在 Rails 中使用 JavaScript
- 使用 Rails 进行缓存 - RubyonRails.org
也许答案就在材料中,但我无法辨别。
我让 Twitter 提供的代码在一个单独的目录中正常工作,我只是在其中创建了一个空白 HTML 文档并将其粘贴到其中。此外,我实际上能够在 .html.erb 文件中看到时间线网格当我简单地使用 Atom 的 HTML 预览器并将脚本与链接一起保存在视图中时,我正在抱怨。
我已经尝试了以下以及其他尝试。其中一些可能是在黑暗中拍摄的。我确实知道外部脚本应该进入供应商目录,但我首先使用应用程序来查看它们是否有效。一旦我可以让它们工作,我会将它们移动到适当的位置:
- 伪造我的开发环境的 config.assets.debug 并确保我在开发模式下启动服务器。
- http://reed.github.io/turbolinks-compatibility/twitter.html">Turbolinks 解决方案 1 和 2。
- 在视图中使用 并通过将该 url 的 javascript 复制并粘贴到本地文件 app/assets/javascripts 文件中来执行相同操作。
- 在 app/assets/javascripts 目录中的 javascript 文件中包含 dev.twitter.com/web/javascript/loading widgets js 脚本,并删除了标签。 4b。使用 javascript_include_tag 并引用文件名在视图中包含此 javascript 文件。 4c。使用带有文件名的 "reload" %> 方法并将 Rails.application.config.assets.precompile += %w( twitter.js ) 添加到配置中/initializers/assets.rb 按照我的错误消息的指示
- 重新启动服务器并再次尝试所有这些。
我终于要点击了,因为我不知道还有什么要检查或尝试的。
任何帮助将不胜感激。我花了很多时间把头敲在键盘上,对于更高级的开发人员来说,这可能是一个简单的修复。
我应该怎么做才能真正显示 Twitter 网格?如果您不介意像我是一个完整的菜鸟(我是)一样为我拼写出来,那将不胜感激。谢谢!
【问题讨论】:
标签: javascript ruby-on-rails twitter