如何使用Rails提供静态html页面?

时间:2015-02-19 14:16:46

标签: html css ruby-on-rails ruby

我的Rails应用程序包含文档,这是/ public文件夹中的静态html页面。

我公开文件夹的树:

-public
  -docs
    -intro
      introduction.html
    -css
      some.css
    index.html 

Index.html文件是:

<link rel="stylesheet" href="css/some.css" type="text/css" />
Some of the text
<li>href="intro/introduction.html"><em>Introduction</em></a></li> 

当我打开索引页面时,css未加载,当我尝试点击链接时,它表示路由错误。据我所知,静态页面不知道在哪里查找css和其他html页面。

我只想要没有任何路由和控制器的静态页面,nginx。

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

可以通过“/”

访问所有公用文件夹内容
<link rel="stylesheet" href="/docs/css/some.css" type="text/css" />

您可以使用high_voltage gem生成static_pages

答案 1 :(得分:1)

通过公共目录提供静态文件(页面或非页面)是完全有效的。正如Kirka121所说,rails并不是为此目的而构建的,但仍可以使用它。

在开发环境中,它应该只是为公共提供的任何文件提供服务,对于生产环境,您可能需要配置用于服务它们的任何服务器 - 但是这应该由其正常设置覆盖,如果不是它的设置错了。

因此,默认情况下,rails公用文件夹可以直接在项目的根目录中访问。

就您的代码而言,相对链接/网址似乎是个问题。它通常更好地使用绝对路径来避免混淆任何东西,这导致很难发现错误。

使用您的文件夹结构和示例,这将是:

<link rel="stylesheet" href="/docs/css/some.css" type="text/css" />
Some of the text
<li><a href="/docs/intro/introduction.html"><em>Introduction</em></a></li>