我刚开始使用rails并加载外部资源,例如css
和js
对我来说一直是个问题。在几个地方读书,我发现,css
应该放在app/assets/stylesheets
和js
app/assets/javascripts
内。完成此操作后,我在我的视图文件中调用了css
和js
,如
<%= stylesheet_link_tag "<<path to my css>>" %>
表示css和
<%= javascript_include_tag "<<path to my js>>" %>
我在config/initializers/assets.rb
Rails.application.config.assets.precompile += [/.*\.js/,/.*\.css/]
但这样做会给我带来某种编译错误。但我不确定它是否是加载外部资源的正确方法。我需要更改的其他地方才能加载css
和js
以及包含外部资源的最佳做法在rails
方面也表现出色。
答案 0 :(得分:3)
您所指的是名为asset pipeline
的内容 - app/assets
文件夹用于存储HTML的所有“相关”文件 - css
/ {{1 } / js
等。
资产管道非常简单 -
资产管道提供了一个连接和缩小或压缩JavaScript和CSS资产的框架。它还增加了以其他语言和预处理器(如CoffeeScript,Sass和ERB)编写这些资产的功能。
它的功能是为您提供一种将CSS / JS“编译”为精简(minified)文件的方法,您可以在前端HTML中调用这些文件。最终目标是使您的“资产”尽可能小,这样您的页面加载速度最快。
-
在您的情况下,您需要查找Sprockets Manifest Directives -
images
上面将使用#app/assets/stylesheets/application.css
/*
*= require self
*= require_tree .
*/
中的每个CSS文件并将它们连接成一个app/assets/stylesheets
文件:
application.css
因此,要直接回答您的问题,您只需将外部样式表存储在#app/views/layouts/application.html.erb
<%= stylesheet_link_tag :application %>
文件夹中。
如果您有“真实”的外部样式表(由Google或其他人托管),您需要将其包含在app/assets/stylesheets
中,如下所示:
layout
答案 1 :(得分:2)
在你的各个文件夹中添加你的css和js后,你必须在application.js和application.css中要求这些文件然后你可以在你的html中包含这两个文件。请尝试以下代码:
application.css
//= require abc
的application.js
//= require xyz
在你的HTML中:
<%= stylesheet_link_tag "application" %>
<%= javascript_include_tag "application" %>