对于这个简单的问题感到抱歉,但我无法在任何地方找到正确的解决方案。
我曾经在公共/ index.html上使用简单的目标网页运行Rails 3.x应用。当然,当我更新到Rails 4时,我的索引页面不再显示。有没有办法让这个功能恢复?
我知道我可以创建一个welcome #index controller / route并将index.html呈现为响应。 但这是一个不同的文件夹,没有公开的所有图像和css资产,呈现前一个静态页面。
任何提示?
答案 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')