1

我在public/company/带有 CSS 文件的 HTML 文件中包含以下内容css/style.css

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
    <link href="css/style.css" rel="stylesheet" type="text/css" media="all"/>
  </head>
  <body>
    <div class="title">Name {name}</div>
  </body>
</html>

我想用一个动作的 CSS 样式表渲染这个 HTML 文件,并在{name}不更改物理文件内容和位置的情况下进行替换。我可以渲染 HTML 文件,但找不到 CSS 文件。谁能帮我用 CSS 文件渲染 HTML 文件并替换{name}?

4

3 回答 3

1

css/style.css当调用 fromcompany/file.html将尝试加载company/css/style.css.

于 2012-12-03T07:09:23.590 回答
0

如果您的 CSS 文件位于/public/company/css/style.css,那么您的静态 HTML 文件应使用绝对路径链接它。在资源路径中使用前导/表示绝对路径。:

<link href="/company/css/style.css" rel="stylesheet" type="text/css" media="all"/>  

请注意,Rails 路由器可能会捕获此请求并引发异常。根据 Web 服务器,您可能需要启用静态资产或直接提供服务,完全绕过 Rails。

更改静态 HTML 文件服务器端的内容而不实际修改它(即添加 ERb)并不简单。你可以:

  • 在响应中注入一些 javascript 以在客户端执行修改。(丑陋)
  • 使用 Nokogiri 等加载静态 HTML 文件。al.,修改内容,并将输出发送到客户端。(昂贵的)

在我看来,这些普通的 HTML/CSS 文件是第三方的(设计师?客户端?),你想把它放进去,让它在/publicRails 中自动工作。那会很好,但这并不容易。最好使用 Rails 的内置模板系统,但这意味着修改文件并将它们移动到预期的位置。

于 2012-12-03T08:32:45.210 回答
0

单击此处以您可以做到的方式查看文章。希望它会有所帮助!

但是,我不确定您为什么要在 Rails 具备所有功能的情况下以这种方式进行渲染。

于 2012-12-12T07:11:34.387 回答