Rails 4 Static Public index.html

时间:2014-01-10 21:22:46

标签: html ruby-on-rails static ruby-on-rails-4 indexing

对于这个简单的问题感到抱歉,但我无法在任何地方找到正确的解决方案。

我曾经在公共/ index.html上使用简单的目标网页运行Rails 3.x应用。当然,当我更新到Rails 4时,我的索引页面不再显示。有没有办法让这个功能恢复?

我知道我可以创建一个welcome #index controller / route并将index.html呈现为响应。 但这是一个不同的文件夹,没有公开的所有图像和css资产,呈现前一个静态页面。

任何提示?

3 个答案:

答案 0 :(得分:21)

您需要使用控制器,但只需将其指向现有文件即可。

e.g。在routes.rb中

root :to => 'welcome#index'

然后在欢迎控制器中:

def index
  render :file => 'public/index.html'
end

或者,您可以设置Apache来为该文件本身提供服务。似乎更容易让Rails做到这一点!

答案 1 :(得分:7)

放置public / index.html并从config / routes.rb中删除root指令对我有用。

$ rails --version
$ Rails 4.2.0

答案 2 :(得分:0)

仅添加public/index.html的问题是,除非存在/的根路径,否则索引页面可能无法呈现。

例如,如果应用程序托管在子uri中,“http://example.com/my-app/”将会点击index.html,但“http://example.com/my-app”(没有尾随/)可能会不。这可能在Web服务器的配置中得到修复,但如果您无法控制,则可以在以下路径中修复此问题:

root to: redirect('index.html')