2017-06-21 65 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''並沒有工作。 –