2014-12-27 66 views
0

我每天都在製作一個靜態網站30天,並且我想創建一個小型的Rails應用來展示這些網站。我將在Heroku上主持這個活動。當我在本地運行我的Rails應用程序時,它可以工作,但它在Heroku上不起作用。在Heroku上的/ public上的靜態html頁面路由

我閱讀了關於rendering static HTML頁面的線索,並讓它工作!通過簡單地使直接鏈接到我的共享資料夾

的意見/着陸/ index.html.erb

<ul> 
    <li> 
    <a href="../oneWebsiteADay/colorNotes/index.html">Color Notes</a> 
    </li> 
    <li> 
    <a href="../oneWebsiteADay/yeOldeMuffinShoppe/index.html">Ye Olde Muffin Shoppe</a> 
    </li> 
</ul> 

這工作,我可以點擊的鏈接和查看靜態的網站在他們的整體。當我部署到Heroku的,雖然我收到以下錯誤:

Rails error

我已閱讀all documentation Heroku provides有關呈現與Rails的靜態內容和修改了相應的配置:

配置/環境/ production.rb

Rails.application.configure do 
    config.cache_classes = true 
    config.eager_load = true 
    config.consider_all_requests_local  = true 
    config.action_controller.perform_caching = true 
    config.serve_static_assets = true 
    config.assets.js_compressor = :uglifier 
    config.assets.compile = true 
    config.assets.digest = true 
    config.log_level = :info 
    config.i18n.fallbacks = true 
    config.active_support.deprecation = :notify 
    config.log_formatter = ::Logger::Formatter.new 
    config.active_record.dump_schema_after_migration = false 
end 

但我仍然收到錯誤。不確定此時還需要做什麼如何在heroku上顯示靜態HTML頁面?

路線:

Rails.application.routes.draw do 
    get "/", to: 'landings#index' 
end 
+0

你的路線文件是什麼樣的? – trueinViso 2014-12-27 21:31:08

+0

我發佈了您的收視路線文件 – 2014-12-28 06:06:46

回答

0

有一個在你的鏈接路徑文件的路由,因此錯誤。在the link you posted它告訴你用你的路由文件中定義的路徑:

get '/foo', :to => redirect('/foo.html') 

所以,如果你的路線文件中定義您的路線是:

get '/colorNotes', :to => redirect('/oneWebsiteADay/colorNotes/index.html') 
get '/yeOldeMuffinShoppe', :to => redirect('/oneWebsiteADay/yeOldeMuffinShoppe/index.html') 

並更改相應的鏈接標籤:

<a href="/colorNotes">Color Notes</a> 
<a href="/yeOldeMuffinShoppe">Ye Olde Muffin Shoppe</a> 

我認爲這會工作,但我不明白爲什麼它不搜索公共文件夾上的heroku。

此外,僅供參考,我認爲,所有你需要的是:

config.serve_static_assets = true 

並非所有的其他設置,能夠反正到達公共目錄。