2

在 M. Hartl 的 Rails 3 教程中的“级联样式表”部分下,他提到将 CSS 蓝图目录复制到“public/stylesheets”文件夹中。我的样式表文件夹位于 assets 目录中。将蓝图目录复制到“资产/样式表”而不是“公共/样式表”是否合理?如果没有,您的建议是什么?如果是这样,您可能会建议我注意哪些特别的陷阱?

他明确建议使用 Rails 3.0.1,虽然我运行的是 3.2.6。我应该按照他的指示去做,但我几乎不可能在我的 Windows 机器上启动并运行环境(MySQL 冲突等),而且碰巧这个版本最终对我有用,所以我和它一起去了。

4

2 回答 2

1

不要以为我知道我在说什么,因为我是 RoR 的新手,但在遇到问题后,我只是花了最后几个小时阅读资产管道。我将分享一些我学到的东西,这些东西可能有助于你概念化:

public/ 中的任何内容都保持原样,并由 Web 服务器直接作为静态文件服务器。但是,关于公共/资产,有两点值得考虑:

1)他们没有得到预编译的好处,其中包括:

1a) 指纹识别 - 将基于文件内容的 md5 散列附加到文件名,以便文件名在文件更改时更改,从而强制重新加载缓存。如果文件可能会在某天更改(在您的情况下是新版本的蓝图),这将很有用。

1b) 连接 - 预编译器可以/将把多个 CSS 或 JS 文件合并为一个,这使得下载速度更快。(究竟什么文件被编译,多少是可配置的。)

1c) 缩小 - 预编译器删除空格(和其他巧妙的优化)以缩小 CSS/JS 文件的大小。

2) 我仍在尝试解决这部分问题,但是 /app/assets 中是否有某些内容并通过预编译会影响辅助方法是否以及如何工作(您在视图中使用的资产标签、图像标签和 javascript_include 标记等东西) )。

尽管我完全没有资格,但我正在认真考虑在某个地方的 wiki 上创建自己的 Rails Assets 最佳实践页面来开始整理我的想法。我认为它非常缺乏 - 我不得不从很多地方挖掘一些知识,而且人们建议我发现一些令人反感的东西(比如修改配置文件以预编译添加未显示的资产)。

于 2012-07-14T11:45:00.357 回答
1

我已将样式表文件复制到 app/assets 文件夹,它工作正常

于 2012-07-24T13:41:14.490 回答