gpt4 book ai didi

javascript - Rails 5 - JS 无法在生产环境中工作(仅限)

转载 作者:行者123 更新时间:2023-11-28 05:17:17 26 4
gpt4 key购买 nike

我正在挣扎。

我有 Rails 5 应用程序,在我的 app/assets/javascripts 文件夹中包含一系列 js 文件。这些文件中的js在开发环境中工作得很好,但是当我在heroku上发布时,它就停止工作了。

我可以从 chrome 检查器中看到,从网络选项卡中可见的 application.js 文件显示了我的应用程序中 js 文件的内容。该 js 似乎在生产中没有做任何事情。 Chrome 控制台检查器中没有出现控制台错误。

我可以从this post看到有一系列的事情可以尝试。我已经尝试过所有这些。我什至制作了一个全新的应用程序,并一次添加了 js 文件,以查看是否存在一个临界点,其中某些内容需要以与其他内容不同的顺序(主要是猜测) - 但这无助于解决问题.

我可以从this article看到其中一项建议是:

# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false

然后尝试:

rake assets:clean assets:precompile

我已经尝试了这些建议,但仍然找不到问题。

如果我编写 js 的方式存在错误,我希望它会在我的开发和生产环境控制台检查器中暴露出来。在这两种环境中都没有显示错误。

如果生产环境读取js文件出现问题,我很困惑为什么我可以在我可以从网络选项卡打开的文件中搜索js文件中使用的单词并看到正确的文本.

我该如何解决这个问题?

我的相关文件是:

应用程序/ Assets /javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require jquery-fileupload/vendor/jquery.ui.widget
//= require jquery-fileupload/jquery.iframe-transport
//= require jquery-fileupload/jquery.fileupload
//= require bootstrap-sprockets
//= require moment
//= require bootstrap-datetimepicker
//= require pickers
// require underscore
// require gmaps/google
//= require markerclusterer
//= require cocoon
//= require cable
//= require_tree .

config/initializers/assets.rb

# Be sure to restart your server when you modify this file.
# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'

# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path

# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )

配置/生产.rb

  # Do not fallback to assets pipeline if a precompiled asset is missed.
config.assets.compile = false

在生产环境中不起作用的相关文件保存在 app/assets/javscripts/stance/commercial.js 中(因此应在 application.js 中通过//= require_tree 来标识它。

该文件有:

jQuery(document).ready(function() {
jQuery('[name="organisation[commercial_attributes][standard_financial_split]"]').on('click', function() {
if (jQuery(this).val() == 'true' ) {
jQuery('#commercial_standard_financial_split_content').removeClass('hidden');
} else {
jQuery('#commercial_standard_financial_split_content').removeClass('hidden').addClass('hidden');
}
});

});

任何人都可以帮助完成让 js 在生产环境中工作的过程吗?

我没有关于尝试的建议,这不是教程、代码学校(我是代码学校的学生,走rails、udemy并拥有一百万本书)的那种事情,但可以'找不到一个引用点来开始解决这个问题。

最佳答案

对我来说,解决方案是将 javascript include 标记从 application.html.erb 的 header 删除到正文下方。这解决了我在问题中引用的 js 文件的问题。

但是,这现在已经破坏了我的谷歌地图 JavaScript,所以我不确定这实际上是一个好的解决方案。

关于javascript - Rails 5 - JS 无法在生产环境中工作(仅限),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40876263/

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