Javascript 文件在使用 Rails 开发时未更新

问题描述 投票:0回答:7

我在app/assets/javascripts下改了一个JS文件,还是一样。我删除了文件并重新创建,但内容仍然是旧的。这是我的 development.rb 文件:

App::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  config.serve_static_assets = false

  # In the development environment your application's code is reloaded on
  # every request.  This slows down response time but is perfect for development
  # since you don't have to restart the web server when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = true

  config.action_mailer.delivery_method = :letter_opener

  config.action_mailer.default_url_options = { :host => "lvh.me:3000" }

  # Raise exception on mass assignment protection for Active Record models
  # config.active_record.mass_assignment_sanitizer = :strict

  # Log the query plan for queries taking more than this (works
  # with SQLite, MySQL, and PostgreSQL)
  config.active_record.auto_explain_threshold_in_seconds = 0.5

  config.log_tags = [:uuid, :remote_ip]
end

JS 文件使用以下代码加载到标头标签内:

<script src="/assets/deals.js?body=1" type="text/javascript"></script>

这是在开发中加载 JS 的正常方式

ruby-on-rails-3 asset-pipeline
7个回答
22
投票

尝试清除预编译资产:

bundle exec rake assets:clean

14
投票

尝试删除tmp文件夹,然后重启服务器-rails s。 这样就可以了。


3
投票

bundle exec rake assets:clean 然后 bundle exec rake assets:precompile


0
投票

或删除

public/assets
文件夹,重启应用


0
投票

检查
sprockets-rails
宝石

就我而言,我升级到 Rails 7,由于某种原因,javascript 文件没有更新。花了很多时间试图找出原因。

我终于发现了罪魁祸首——就我而言——不知何故,我已经移除了

sprockets-rails
宝石。我本可以很容易地浪费好几个月的时间来弄清楚这个问题。


0
投票

我在运行 Rails 6 和 7 的应用程序中遇到了类似的问题。当我将

console.log
添加到其中一个 javascript 控制器时,浏览器控制台中不会有任何日志,看起来
console.log
甚至不存在.

我遇到问题已经有一段时间了,一直无法查明确切原因,这可能是由于全局安装的 bundler、rvm 和 asdf 之间的冲突、overmind、yarn 或 npm 的配置。但是我发现了解决这个问题的 3 个命令有一段时间了,我通常一个接一个地运行它们

rails assets:clobber
rake tmp:cache:clear
rake assets:precompile

0
投票

另一个不太可能的原因是在开发中有以下配置:

config.cache_classes = true

虽然这不是设置的意图,但它可以阻止模块重新加载,从而阻止 js 包更新而无需重新启动 rails 服务器,因为它们都已被缓存

© www.soinside.com 2019 - 2024. All rights reserved.