2017-06-21 62 views
2

我的问题是,我跟着这个tutorial尝试与水豚方法save_and_open_page调试时加载资产在测试环境中,但我得到了以下错误:Rails的5豚测试路由错误公共/资产

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 

感谢您的帮助!

+0

检查,如果这有助于:https://stackoverflow.com/a/40441986/1033737 – fabersky

+0

我尝试过,但不起作用。我也尝试安装纱线,但也没有帮助。 –

+0

你在水豚使用什么驱动程序? –

回答

0

test.rb改变了这一confid和工作:

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

config.assets.prefix = '' 
0

如果您已经在测试环境中预编译了您的资产,那么您应该可以将Capybara.asset_host设置为开发或测试的任何地址,而不是遵循该文章(该文章已过期3年并过期)实例是 - 类似于

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

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

+0

我试过这个,也没有帮助。我试着用'config.assets.prefix =“”'尝试这个配置,但是我测试了评论'Capybara.asset_host ='http://127.0.0.1:3000'',资产继续工作。你知道为什么吗? –

+0

咦?我不明白你的问题 - 你的意思是资产继续工作?我认为整个问题是他们没有工作?如果你的意思是正常测试运行中的资产继续工作,那是因为'Capybara.asset_host'只在保存期间影响页面 - 是否为保存并打开的文档添加了一个“base”标签?如果是这样,打开文档时是否运行了dev实例?你有没有预编译你的测试资产? –

+0

对不起,我很抱歉!我会重述自己。我尝试用确切的配置作为问题,并用'Capybara.asset_host ='http://127.0.0.1:3000''并没有工作。 –