gpt4 book ai didi

javascript - Rails Assets 管道需要来自公共(public)文件夹吗?

转载 作者:行者123 更新时间:2023-12-02 14:11:51 25 4
gpt4 key购买 nike

要求 Assets 位于公共(public)文件夹下是一个好的做法吗?例如我在 public/mythirdparyjs 文件夹下有很多 javascript,我想让这些 javascript 文件仅可用于特定页面,最好的方法是什么?

最佳答案

第三方 js 文件应该位于您的 vendor 文件夹中。一旦您将它们预编译用于生产,它们就会自动移动到您的公共(public)文件夹中。要调用特定页面上的某些文件,您需要删除 require_tree 指令,并注意 application.js 资源文件中调用了哪些文件。在每个 View 页面 (html.erb) 的底部,您可以添加以下内容以仅运行页面特定的 js:

<%= content_for :javascript do %>
<script type='text/javascript'>
YOUR FUNCTIONS HERE
</script>
<% end %>

然后在应用程序/布局 View 底部的结束正文标记之前添加:

<%= javascript_include_tag params[:controller] if Rails.application.assets_manifest.assets["#{params[:controller]}.js"] %>
<%=yield :javascript %>

然后,这将在逐页 View 的基础上运行任何 js,并包含相应 Controller 的 js 资源文件中任何文件的任何 require 语句。

更新以解决评论:如果您安装了 gem,然后需要某些 js 文件,则应从 application.js 文件中的 app/assets/javascripts 文件夹中获取这些文件(如果您希望该 gem可以在整个应用程序中使用),或者如果您只需要在几个页面上使用该功能,则可以在 Controller 特定的 js 文件中使用。例如,Angular gem 可能在整个应用程序中使用,因此您可以将//=require 语句添加到 app/assets/javascripts 文件夹中的 application.js 文件中。如果您手动下载一些 js 库,您应该将它们放在 vendor/javascripts 文件夹中,但是您仍然需要将它们放在您的 app/assets/javascripts 文件夹文件中的任何需要的地方。

关于javascript - Rails Assets 管道需要来自公共(public)文件夹吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39471313/

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