【问题标题】:How do I use CSS with a ruby on rails application?如何在 ruby​​ on rails 应用程序中使用 CSS?
【发布时间】:2010-10-22 17:48:29
【问题描述】:

如何将 CSS 与 RoR 结合使用?当我从外部链接时,我永远无法看到这些文件。我将 .css 文件复制到我能想到的每个文件夹中……视图、控制器、模板,但似乎没有任何效果。

我需要做什么才能使用 Rails 应用程序启用外部 CSS 文件?我是 Rails 新手,如果这是基本的,请见谅。

【问题讨论】:

    标签: ruby-on-rails css ruby


    【解决方案1】:

    将 CSS 文件放在 public/stylesheets 中,然后使用:

    <%= stylesheet_link_tag "filename" %>
    

    链接到布局中的样式表或视图中的 erb 文件。

    类似地,您将图像放在 public/images 中,将 javascript 文件放在 public/javascripts 中。

    【讨论】:

    • 没有“公共/样式表”我可以在哪里添加我的文件?
    • 然后您可以创建它,将公共文件夹添加到与您的应用程序文件夹相同的目录中。然后在 public 文件夹中添加一个 stylesheets 文件夹。
    • 链接标签必须在我文档的头部,对吗?如果我只需要一个 erb 部分中的样式,有没有一种方法可以在需要该部分时有条件地添加它?或者如果当前路线与特定路线匹配,我有什么方法可以添加?
    【解决方案2】:

    如果你使用的是rails > 3 版本,那么有一个概念叫做asset pipeline。您可以将 CSS 添加到

    app/assets/stylesheets
    

    然后它将被应用程序自动拾取。 (这很有用,因为 rails 会自动压缩 CSS 文件)

    read more here 关于资产管道

    【讨论】:

    • 那是app/assets/stylesheets(应该是“资产”上的“s”)
    【解决方案3】:

    使用 rails 样式表标签像这样链接你的 main.css

    <%= stylesheet_link_tag "main" %>
    

    前往

    config/initializers/assets.rb
    

    一旦进入assets.rb,在Rails.application.config.assets.version = '1.0'下方添加以下代码sn-p

    Rails.application.config.assets.version = '1.0'
    Rails.application.config.assets.precompile += %w( main.css )
    

    重启你的服务器。

    【讨论】:

    • 这是每个 Rails 文档的正确(更具体)答案。您必须将其添加到 assets.rb 以进行预编译!
    【解决方案4】:

    我做了以下...

    1. 将您的 css 文件放在 app/assets/stylesheets 文件夹中。
    2. 在默认布局文件中添加样式表链接&lt;%= stylesheet_link_tag "filename" %&gt;(很可能是application.html.erb

    我建议这样做而不是使用您的公用文件夹。您还可以引用内联样式表,例如在您的索引页面中。

    【讨论】:

    • 这对我不起作用,出现 AssetsFilter 错误
    【解决方案5】:

    最初的帖子在 2009 年可能是正确的,但现在它实际上是不正确的,而且正如我在其他一些回复中提到的那样,样式表甚至不需要链接。 Rails 现在会默认为您执行此操作。

    • 将任何新的工作表 .css(或其他)放在 app/assets/stylesheets 中
    • 使用 rails-root/scripts/rails server 测试您的服务器,您会看到链接是由 rails 自己添加的。

    您可以使用浏览器中的路径进行测试,例如 testserverpath:3000/assets/filename_to_test.css?body=1

    【讨论】:

    • 对不起,necropost,但你和我一样有罪。然而,事实并非如此。如果您想使用资产管道,并且您已在 application.html.haml(或 .erb)中正确链接 CSS 文件,您的服务器将抛出错误,并告诉您将其添加到预编译(config/initializers/ assets.rb) 有点像Rails.application.config.assets.precompile += %w( custom.css )
    【解决方案6】:

    要添加到上述内容,添加 stylesheet_link_tag 最明显的位置是在您的全局应用程序布局中 - application.html.erb。

    【讨论】:

      【解决方案7】:

      使用 Rails 6.0.0,在 app/assets/stylesheets 创建您的“stylesheet.css”样式表。

      【讨论】:

        【解决方案8】:

        您是否尝试将其放入您的公共文件夹中?每当我有需要从外部引用的图像或类似内容时,我都会将其全部放在那里。

        【讨论】:

          猜你喜欢
          • 2017-07-16
          • 2011-11-11
          • 1970-01-01
          • 1970-01-01
          • 2020-09-20
          • 2010-12-01
          • 1970-01-01
          • 1970-01-01
          • 2011-05-15
          相关资源
          最近更新 更多