Rails什么时候将Coffeescript资源编译成JavaScript?它是随需应变还是在启动时发生?
发布于 2011-11-17 14:42:55
当向包含CoffeeScript资源的视图发出请求时,CoffeeScript会按需编译为JavaScript。
但是,您可以使用以下命令提前将CoffeeScript编译为JavaScript:
rake assets:precompile
有关Rails资产管道的更多信息,请参阅此link。
从链接:
资源上使用的文件扩展名确定要应用的预处理。当使用默认的Rails gemset生成控制器或scaffold时,将生成CoffeeScript文件和SCSS文件,以替换常规的JavaScript和CSS文件。前面使用的示例是一个名为“projects”的控制器,它生成了一个app/assets/javascripts/projects.js咖啡和一个app/assets/stylesheets/projects.css.scss文件。
当请求这些文件时,它们由CSS script和sass-rails gem提供的处理器处理,然后分别以JavaScript和CSS的形式发送回浏览器。
..。
服务器启动后,
资产在第一次请求时被编译和缓存。链轮设置了一个必须重新验证的Cache-Control HTTP头,以减少后续请求的请求开销-在这些请求上,浏览器会得到304 (未修改)响应。
如果清单中的任何文件在两次请求之间发生了更改,服务器将使用新的编译文件进行响应。
..。
Rails与一个rake任务捆绑在一起,用于将资产清单和其他文件编译到磁盘的管道中。
编译后的资源将写入config.assets.prefix中指定的位置。默认设置将使用public/assets目录。
您必须在部署期间使用此任务,如果您对生产文件系统没有写入访问权限,则必须在本地使用此任务。
rake任务是:
软件包exec rake资源:预编译
更新:对于那些对为开发预编译资产感兴趣的人,请将RAILS_ENV变量设置为development (来自here):
RAILS_ENV=development bundle exec rake assets:precompile
https://stackoverflow.com/questions/8162998
复制相似问题