我的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。
有什么想法吗?
答案 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>