2014-12-27 94 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 

并非所有的其他设置,能够反正到达公共目录。