【问题标题】:Why url to assets not containing assets word?为什么指向不包含资产字的资产的网址?
【发布时间】:2017-08-17 12:16:41
【问题描述】:

我在生产服务器中执行了“rake assets:precompile”,并且资产是在 public/assets 文件夹中生成的,但是 rails 会使用 domain.com/javascript/application.js 之类的 url 搜索资产,为什么不喜欢 domain.com/assets/ application.js,因为资产存在于资产文件夹中。当我在生产环境中部署应用程序时,发现没有资产出现 404 错误。另外,为什么 .sprocket-manifest 文件没有在 assets 文件夹中创建。

production.rb 的配置如下:-

Rails.application.configure do

  config.cache_classes = true

  config.eager_load = true

  config.consider_all_requests_local       = false

  config.action_controller.perform_caching = true

  config.serve_static_files = true # ENV['RAILS_SERVE_STATIC_FILES'].present?

  config.assets.js_compressor = :uglifier

  config.assets.compile = false

  config.assets.digest = true

  config.log_level = :debug

  config.i18n.fallbacks = true

  config.active_support.deprecation = :notify

  config.log_formatter = ::Logger::Formatter.new

  config.active_record.dump_schema_after_migration = false
end

我一直在使用 rails 4.2.8。谢谢。

【问题讨论】:

    标签: ruby-on-rails-4.2 rails-sprockets


    【解决方案1】:

    在 Rails 4 中,您需要进行以下更改:

    config.assets.compile = true config.assets.precompile = ['.js', '.css', '*.css.erb']

    这对我有用。使用以下命令预编译资产

    RAILS_ENV=production bundle exec rake assets:precompile

    祝你好运!

    【讨论】:

      猜你喜欢
      • 2013-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多