jquery 在使用Rails时,如何在清单文件中读取Sprockets指令?

v64noz0r  于 2023-10-17  发布在  jQuery
关注(0)|答案(2)|浏览(116)

我是Rails新手,所以请原谅我......我今天在研究资产管道时查看了一个清单文件(application.js),并对如何读取//= require jquery等指令感到好奇。这是链轮在后台做的事情吗?为什么必须先注解掉指令,然后加上等号?如果我取消注解这些指令并在broswer中加载application.js文件,我就看不到jquery库的内容了。只是好奇这是如何在后台工作的。
另外,当我添加自己的自定义css样式表时,我是在application.css清单文件中添加require指令,还是添加样式表链接(如<link rel="stylesheet" type="text/css" href="mystyle.css">)?或者我两样都做?我假设我不应该直接在清单文件中添加css...
谢谢你,谢谢

5lhxktic

5lhxktic1#

不知道你知道多少,所以会尽量详细解释。
Rails将我们的资产(如图像,CSS,JS文件)存储在不同的地方,所以它都是有序的,更适合我们开发人员使用。这就是所谓的管道。当Rails加载这些资产时,比如说css文件,它会从所有的应用程序文件中创建一个大文件,以避免多次调用。Manifest就像Rails的一个Map或规则,哪些文件要包含在那个大的css文件中,这个*=告诉Rails到底要包含什么(我认为它是Rails的语法)。当你有这样的东西:

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

require_tree .告诉Rails从javascript文件夹中获取所有文件,而//= require jquery和其他人则将Rails引导到 * 特殊情况 * --通常由gems使用的资产(那些你从不保存在javascript/stylesheets文件夹中的文件,所以//= require_tree .看不到它们)。
当您添加自己的css文件时,只需将其添加到stylesheets文件夹中,然后require_tree通知Rails将其包含在大图中。但是Rails有一个很好的特性--脚手架。您可以使用rails g scaffold User命令搭建对象,Rails会为您创建所有内容--视图、控制器、模型、测试(还有其他的,谁知道呢:))。因此,在这种情况下,您甚至不需要创建css文件,只需将css规则插入其中,Rails就会发现它due require_tree .
sass文件的情况有点不同:
如果你想使用多个Sass文件,你通常应该使用Sass @import规则而不是这些Sprockets指令。当使用Sprockets指令时,Sass文件存在于它们自己的作用域中,使得变量或mixin只能在定义它们的文档中使用。
因此,如果您将使用Bootstrap(可能会),这一点也很重要。
希望这有帮助

dojqjjoe

dojqjjoe2#

为什么必须先注解掉该指令
因为这是命令。它在该文件中的任何js/coffee有机会运行之前就已经执行了。而且css根本不是“可运行”的代码。如何使这种代码不产生任何错误?你评论它。
. and the equal sign added?
将这些特殊指令与该文件中可能存在的其他“常规”注解区分开来。
我假设我不应该直接在清单文件中添加css...
为什么不呢,去吧。尽管出于代码组织的原因,您可能希望将任何自定义代码放在单独的文件中。但技术上来说,这里没有问题。
另外,当我添加自己的自定义css样式表时,是否在application.css清单文件中添加require指令
不需要,require_tree .将找到并包含您的文件。
还是添加样式表链接,如<link rel="stylesheet"type="text/css" href="mystyle.css">
不,别这样。

相关问题