2

我正在使用 Rails 3.1,并且已经开发了一年半。今天早上我一定做了什么,现在我的很多文件似乎都被缓存了。这包括视图文件、控制器和模型。

我可以对模型、控制器等进行更改,并且不会对我的应用程序产生任何影响(在 localhost:3000 上运行)。我曾尝试切换端口(例如切换到 localhost:3005),但没有成功。

我没有更改任何配置文件或在我的计算机(Mac、Lion)上进行任何大的更改,但显然我必须做些什么。

  • 我正在开发模式下工作
  • 我在 Mac 上使用 TextMate
  • 公共文件夹是空的,除了 404 页等
  • 我已删除 /caches/assets-folder
  • 我已删除浏览器上的缓存

重新启动服务器使其始终正常工作!有时(尽管很少)更改无需重新启动即可生效。

这是我的 development.rb:

  # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application's code is reloaded on
  # every request. This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # Raise exception on mass assignment protection for Active Record models
  config.active_record.mass_assignment_sanitizer = :strict

  # Log the query plan for queries taking more than this (works
  # with SQLite, MySQL, and PostgreSQL)
  config.active_record.auto_explain_threshold_in_seconds = 0.5

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = true

可能发生了什么,我该如何解决或排除故障?

4

2 回答 2

2

我已经遇到了同样的问题。

在我的 development.rb 文件中添加以下行后,我的问题已解决:

config.reload_classes_only_on_change = false

我不明白为什么会出现这个缓存问题。在我遇到这个问题的两周内,一切都很好。

我正在使用Textmate,也许......

于 2013-12-04T16:29:20.417 回答
2

你可能没有在看你认为你在看的东西。最常见的原因:您使用的是项目的副本,而不是运行应用程序时正在查看的文件夹。

或者你搞砸了你的 development.rb ( config.cache_classes = false )。

缓存提示:此页面包含所有缓存技术。查看关于页面缓存的文章(它甚至不通过 Ruby 堆栈运行)。

http://guides.rubyonrails.org/caching_with_rails.html

其他提示:将整个项目复制到一个新文件夹,因此操作系统的任何文件夹魔法都不会干扰。

开发日志是否没有显示任何关于正在发生的事情的提示?特别是如果您将一些非法代码放入您的主要模型之一(这真的应该让它崩溃)......

于 2012-08-13T10:16:06.337 回答