现在一个项目,里面有好多的 model class 文件(几百个),这些文件一般不改动的。
然后开发过程每次请求都超级慢,关掉 cache 之后好多了。有什么办法设置一些特定目录不要自动重载?
@linjunhalida 可以使用 autoload_once_paths, 另外 autoload_paths -= %w[] 可以减啊,不过看起来 autoload_once_paths 更符合你要求。 另外仅供参考,下面这种方式会自动加载 app/services/下除了 aaa 目录以外的所有
Dir.glob("#{Rails.root}/app/services/**[^aaa]/*/").each do |dir|
config.autoload_paths << dir
end
我提个笨办法,直接写个脚本,一个 mv 出去,一个 mv 里来,mv 操作是很快的,也可以试一下 ln -s
不加载的时候删除这个链接,加载的时候建立一下。
狗头军师出主意,不行您就笑笑,呵呵
我也有一个 400+ Model 的 rails 项目,不过没有遇到 @linjunhalida 的问题啊?你检查一下是否引用了 googlde 字体吧?一般应该是这个导致页面加载缓慢,换成 360 的 web 字体就好了。
<link href='http://fonts.googleapis.com/css?family=Russo+One' rel='stylesheet' type='text/css'>
<link href='http://fonts.useso.com/css?family=Russo+One' rel='stylesheet' type='text/css'>
models 是在db/
目录下面,然后发现问题是还有一个 db.rb 定义了 module DB 在旧目录的位置中,这样每次 reload 的时候删除掉了这个 module,造成每次都会重新加载而不是缓存起来,把 db.rb 也移动到 autoload_once_paths 里面解决掉了这个问题。