我通过在控制器中使用 render_to_string 创建了一个 html 文件,并使用 send_data 将 html 文件发送给用户。这很好用,我返回的文件与我在浏览器中右键单击并查看页面源时看到的 html 相匹配。但是,在我的 html 文件中有指向我的 app/assets 文件夹中不存在的 css 文件和 .js 文件的链接。
例如,在 html 文件中有一个指向 application.css 的链接,但在 app/assets 文件夹中只有 application.css.scss。或者另一个例子;lightbox.css.erb 而不是 lightbox.css。
此外,html 中的某些路径是错误的,例如图像位于 app/assets/images 中,但 html 正在查找 app/assets。路径不是问题,因为我可以使用 nokogiri 编辑生成的 html,但我很好奇它们为什么不同。
这几乎正是我想要做的轨道:模拟“将页面另存为”行为
除了我以不同的方式获取我的 html 并且无论出于何种原因我找不到我正在寻找的资产。正如我之前指出的那样,html 看起来是有效的,打开文件将显示 html 中的文本,但在我更改链接路径之前不会显示任何图像或资产。
根据我的阅读,rails 会将 scss 转换为 css 并将 erb 文件呈现为 js 或 html。不过,我在我的目录中的任何地方都找不到这些文件。如何生成我需要的文件,以便独立于 rails 应用程序显示我的静态 html 文件?
我正在使用带有 jruby 1.6.7(ruby 1.9.2)的 Rails 3.2.2