gpt4 book ai didi

ruby-on-rails - 我应该如何只在一页上包含一个 CoffeeScript 文件?

转载 作者:行者123 更新时间:2023-12-03 10:40:54 27 4
gpt4 key购买 nike

编辑:一年后,如果我要再次这样做,我会使用 curl.js 而不是 Rails Assets 管道。

相关:Best way to add page specific javascript in a Rails 3 app?

我正在编写一个应用程序并使用coffeescript 来生成所有的js。这就是为什么相关问题不能满足我的需要。

我希望能够将一个 CoffeeScript 文件放在我的 Assets 目录的子文件夹中,并让该 .coffee 文件只在一页上提供。该页面位于命名路由上
match 'myNotifications' => 'user#notifications'
最明显的做法是将 .coffee 文件放入 assets\javascripts\user\index.js.coffee .但是在阅读了有关 Assets 的文档后,我并不清楚。

我读了这一行(来自 http://guides.rubyonrails.org/asset_pipeline.html ):

You should put any JavaScript or CSS unique to a controller inside their respective asset files, as these files can then be loaded just for these controllers with lines such as <%= javascript_include_tag params[:controller] %> or <%= stylesheet_link_tag params[:controller] %>.



好的很酷,所以我把页面特定的js放在 assets\javascripts\user.js.coffee .然后我重新加载了我的主页,Ctrl F5。 user.js 文件仍在主页上加载。经 $ -> alert 'ready from users controller' 测试;当我加载主页时看到该警报。

Rails 是否有办法让每页的 CoffeeScript 文件仅随该页面提供?我读错手册了吗? Assets 文件夹中是否有一个地方可以放置 .coffee 文件,它们不会被每个页面加载?

更新 : 看来我可能会 have an answer :

There are a couple of ways that we can get around this problem. We could use require_directory instead of require_tree as this will only load the files in the current directory and not in subdirectories. If we want more control over the included files we can require them separately instead of including the whole directory. Alternatively we could move the JavaScript files that we want to be included on all pages into a public subdirectory. We can then use require_tree ./public to include just those files.



我会在上午试一试。

最佳答案

您可能只想使用以页面标记为条件的逻辑,而不是将文件仅包含在一页上。见 my answer to a related question .这样,您的用户就不必再制作 <script>特定页面的请求。

如果该页面有很多特定的逻辑(例如,缩小了 10K+),那么是的,将其拆分。正如您在编辑问题时所建议的那样:而不是做 require_tree .在您的 javascripts 的根目录下目录,而是创建一个名为 global 的子目录并更改 application.js 的顶部从

require_tree .


require_tree global

然后将特定页面的 CoffeeScript 文件放入根目录 javascripts目录,并用 javascript_include_tag 指向它调用该页面的模板。

关于ruby-on-rails - 我应该如何只在一页上包含一个 CoffeeScript 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8284117/

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