此扩展是 Sinatra::Contrib 项目的一部分。运行 gem install sinatra-contrib 使其可用。
Sinatra::Reloader¶ ↑
<b>已弃用:<b> 请考虑使用其他替代方案,例如 rerun
或 rack-unreloader
。
扩展以重新加载修改后的文件。在开发过程中很有用,因为它会自动要求定义路由、过滤器、错误处理程序和内联模板的文件,并在每个传入请求时进行,但前提是它们已更新。
用法¶ ↑
经典应用程序¶ ↑
要在经典应用程序中启用重新加载器,您只需要求它即可
require "sinatra" require "sinatra/reloader" if development? # Your classic application code goes here...
模块化应用程序¶ ↑
要在模块化应用程序中启用重新加载器,您只需要求它,然后注册它即可
require "sinatra/base" require "sinatra/reloader" class MyApp < Sinatra::Base configure :development do register Sinatra::Reloader end # Your modular application code goes here... end
在其他环境中使用重新加载器¶ ↑
默认情况下,重新加载器仅在开发环境中启用。与在模块化应用程序中注册重新加载器类似,经典应用程序需要手动启用扩展才能在非开发环境中使用。
require "sinatra" require "sinatra/reloader" configure :production do enable :reloader end
更改重新加载策略¶ ↑
您可以使用 also_reload
和 dont_reload
来细化重新加载策略,分别自定义哪些文件应该重新加载和不应该重新加载。您还可以使用 after_reload
在任何文件被重新加载后执行一个块。
经典应用程序¶ ↑
只需调用这些方法即可
require "sinatra" require "sinatra/reloader" if development? also_reload '/path/to/some/file' dont_reload '/path/to/other/file' after_reload do puts 'reloaded' end # Your classic application code goes here...
模块化应用程序¶ ↑
在 configure
块中调用这些方法
require "sinatra/base" require "sinatra/reloader" class MyApp < Sinatra::Base configure :development do register Sinatra::Reloader also_reload '/path/to/some/file' dont_reload '/path/to/other/file' after_reload do puts 'reloaded' end end # Your modular application code goes here... end