Routing Rails 5 Capybara测试路由错误公共/资产

Routing Rails 5 Capybara测试路由错误公共/资产,routing,capybara,ruby-on-rails-5,Routing,Capybara,Ruby On Rails 5,我的问题是,在使用Capybara方法save_和\u open_page进行调试时,我遵循此方法尝试在测试环境中加载资产,但我得到以下错误: No route matches [GET] "/public/assets/application-22cc3ed14274a8cdae6670ce999946a627b5fd03c71819fbe4453118dca5ff40.css"> 我在environments/test.rb中添加了以下参数,试图使它们正常工作,但仍然出现此错误 co

我的问题是,在使用Capybara方法
save_和\u open_page
进行调试时,我遵循此方法尝试在测试环境中加载资产,但我得到以下错误:

No route matches [GET] "/public/assets/application-22cc3ed14274a8cdae6670ce999946a627b5fd03c71819fbe4453118dca5ff40.css">
我在
environments/test.rb
中添加了以下参数,试图使它们正常工作,但仍然出现此错误

config.assets.digest = true
config.assets.prefix = '../public/assets/'
config.assets.quiet = true
config.assets.precompile += %w( *.js *.css )
config.public_file_server.enabled = true

谢谢你的帮助

如果您已经在测试环境中预编译了您的资产,那么您应该能够将
Capybara.asset\u host
设置为您的开发或测试实例的任何地址,而不是遵循那篇文章(这篇文章已经3年了,已经过时了)

Capybara.asset_host = 'http://127.0.0.1:3000'

这将在保存和打开页面时将其添加到文档中的基本标记中。

我在
test.rb中更改了此confid,并且:

config.assets.prefix = '../public/assets/'


检查这是否有帮助:我试过了,但不起作用。我也试过安装Thread,但也没用。你在水豚身上使用什么驱动程序?我在使用
:selenium\u chrome
我试过了,也没用。我用
config.assets.prefix=“”
尝试了这个配置,但我测试了注释
Capybara.assets\u host=“”http://127.0.0.1:3000“
并且资产继续工作。你知道为什么吗?我不明白你的问题——你说资产继续运转是什么意思?我以为整个问题是他们不工作了?如果您的意思是正常测试运行中的资产继续工作,那是因为
Capybara.asset\u host
仅在保存期间影响页面--它是否在保存和打开的文档中添加了
base
标记?如果是这样,那么在打开文档时,您的dev实例是否正在运行?你是否预编译了你的测试资产?很抱歉让人困惑!我要换个说法。我试着用确切的配置作为问题,并用
Capybara.asset\u host='class2'进行了尝试http://127.0.0.1:3000“
并且不起作用。@RodrigoChaves,但是它是否将
base
标记添加到它保存和打开的文档中?您不需要对教程进行任何更改,只需设置
asset\u host
,在运行测试之前为测试环境预编译您的资产,并让您的dev env保持运行(如果在asset\u host中指定端口3000,假设您的dev env在3000上运行)
config.assets.prefix = ''