gpt4 book ai didi

javascript - 使用 Rails 时如何在 list 文件中读取 Sprockets 指令?

转载 作者:数据小太阳 更新时间:2023-10-29 08:58:22 25 4
gpt4 key购买 nike

Rails 的新手所以请多多包涵...我今天在研究 Assets 管道时查看了一个 list 文件 (application.js),我很好奇 //= require jquery 等指令是如何工作的正在阅读。这是 Sprockets 在后台做的事情吗?如何?为什么必须先注释掉该指令,然后添加等号?如果我取消注释指令并在我的浏览器中加载 application.js 文件,我将不再看到 jquery 库内容。只是好奇这是如何在后台工作的。

此外,当我添加自己的自定义 css 样式表时,我是在 application.css list 文件中添加 require 指令,还是添加样式表链接,例如 <link rel="stylesheet" type="text/css" href="mystyle.css"> ?还是我都做?我假设我不应该直接在 list 文件中添加 css...

谢谢!

最佳答案

不知道你知道多少,所以会尽量详细解释。

Rails 将我们的 Assets (如图像、css、js 文件)存储在不同的位置,因此一切井然有序,更适合我们 - 开发人员使用。这就是所谓的Assed Pipeline。当 Rails 加载这些 Assets 时,比如 css 文件,它会从我们所有的应用程序文件中创建一个大文件,以避免多次调用。 Manifest 就像是 Rails 的 map 或规则,哪些文件要包含在那个大的 css 文件中,这个 *= 告诉 Rails 到底要包含什么(我认为它是 Rails 语法)。所以当你有这样的事情时:

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .

require_tree . 告诉 Rails 从 javascripts 文件夹中获取所有文件,而 //= require jquery 和其他命令 Rails 处理特殊情况 - Assets ,通常由您的 gem 使用(那些您从未保存在 javascripts/stylesheets 文件夹中的文件,因此 //= require_tree 。 看不到它们)。

当您添加您的 css 文件时,您只需将它添加到样式表文件夹中,然后 require_tree 通知 Rails 将它包含在大图片中。但是 Rails 有一个很好的特性——脚手架。您使用命令 rails g scaffold User 搭建您的对象,Rails 会为您创建一切 - View 、 Controller 、模型、测试(谁知道还有什么 :))。所以在这种情况下,您甚至不需要创建您的 css 文件,只需将 css 规则插入其中,Rails 就会根据 require_tree 找到它。

sass 文件有点不同:

If you want to use multiple Sass files, you should generally use the Sass @import rule instead of these Sprockets directives. When using Sprockets directives, Sass files exist within their own scope, making variables or mixins only available within the document they were defined in.

因此,如果您将使用 Bootstrap(可能会),了解这一点也很重要。

希望对你有帮助

关于javascript - 使用 Rails 时如何在 list 文件中读取 Sprockets 指令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376087/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com