gpt4 book ai didi

javascript - Heroku 上的 Rails 应用程序中两次包含 jQuery

转载 作者:行者123 更新时间:2023-11-28 02:42:07 27 4
gpt4 key购买 nike

我的问题与这里的其他一些问题类似,但仍然没有为我的情况提供答案

我在 Gemfile 中将 jQuery gem 包含在我的应用程序中:

gem 'jquery-rails'

在 application.js 中:

//= require jquery
//= require jquery-ui
//= require jquery_ujs
...
//= require_tree .

我的development.rb有

# Do not compress assets
config.assets.compress = false
# Expands the lines which load the assets
config.assets.debug = true

我的 Assets 没有预编译,没有公共(public)/ Assets 。本地一切都运行良好。但是当我推送到 heroku 时,页面上包含了不同的 application.js 文件。它不是 list 文件,而是缩小版的 jQuery。因此我将 jQuery 包含了两次。这是我的页面源代码的样子:

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
...
<script src="/assets/application.js?body=1" type="text/javascript"></script>

当我点击 /assets/application.js?body=1 时,我看到了缩小的 jQuery。当我在本地运行应用程序并单击 /assets/application.js?body=1 时,我只看到 list 。我尝试添加到development.rb

 config.serve_static_assets = false

这没有帮助。我还多次清除 Assets 和缓存。唯一对我有用的是设置

config.assets.debug = false

但我想知道是否还有其他不影响调试的选项。

最佳答案

我删除了这一行

//= require_tree .

并在 javascripts 中创建一个子文件夹,然后将 javascript 目录中的所有 js 文件移动到该子文件夹中,除了 application.js

并写下了这一行

//= require_tree ./sub_folder_name

它非常棒并且有效。

需要注意的一件重要事情:

这可能会对您造成影响,因为您通过 javascript_include_tag 手动包含同一个文件两次,并通过 application.js 手动包含同一个文件。首先确认如果是这种情况,您必须将其包含一次。

关于javascript - Heroku 上的 Rails 应用程序中两次包含 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12500788/

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