ruby-on-rails - javascript_include_tag Rails 4在生产中生成 “/javascripts/”而不是 “/assets”

标签 ruby-on-rails asset-pipeline

我有一个Rails 4应用程序

<%= javascript_include_tag "modernizr", "data-turbolinks-track" => true %>

在头上。在开发中,呈现以下HTML,并加载了modernizr:
<script data-turbolinks-track="true" src="/assets/modernizr.js?body=1"></script>

在生产中,将呈现followign HTML,并且不会加载modernizr(未找到404):
<script data-turbolinks-track="true" src="/javascripts/modernizr.js"></script>

在生产中,找到了/assets/modernizr.js并且可以浏览。

Rails documentation表示javascript_include_tag应该生成
<script data-turbolinks-track="true" src="/assets/modernizr.js?body=1"></script>

在生产中,我的stylesheet_link_tag很好,可以链接到/assets/目录。

为什么在生产环境中javascript_include_tag链接到/javascripts而不是/assets,我该如何解决?

最佳答案

AssetUrlHelper的用法说明之一表明它将产生/ javascripts /网址
就像您所看到的:

#asset_path“应用程序”,键入::javascript#=> /javascripts/application.js

(摘自asset_url_helper.rb第117行-[1])

该代码看起来只有在缺少预编译 Assets 的情况下才能到达
因此您的 Assets 编译似乎无法正常工作(通常是我的部署
发生这种情况时会失败,所以也许您甚至没有解雇。

相同的asset_url_helper.rb将/ javascripts /部分称为“extname”,
使用以下映射了解如何生成名称:

 # Maps asset types to public directory.
  ASSET_PUBLIC_DIRECTORIES = {
    audio:      '/audios',
    font:       '/fonts',
    image:      '/images',
    javascript: '/javascripts',
    stylesheet: '/stylesheets',
    video:      '/videos'
  }

一个新的Rails 4应用程序在config / environments / production.rb中具有此功能
  # Do not fallback to assets pipeline if a precompiled asset is missed.
  config.assets.compile = false

这似乎与您看到的行为相符。

关于ruby-on-rails - javascript_include_tag Rails 4在生产中生成 “/javascripts/”而不是 “/assets”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17622858/

相关文章:

ruby-on-rails - Capistrano - var/www/[app-name]/repo 构建失败

ruby-on-rails - CircleCI:涉及时间戳的规范错误

ruby-on-rails - Javascript list 文件 "application.js"未处理

ruby-on-rails - Assets 预编译因 twitter-bootstrap-rails gem 而失败

ruby-on-rails-3 - 手动预编译 Assets 时在Heroku上部署redis

ruby-on-rails - 我正在尝试使用 Prawn 创建 PDF,但我得到:Prawn::Errors::UnrecognizedTableContent

ruby-on-rails - 将 Stripe 与 Devise 结合使用?

ruby-on-rails - 使用 Capybara/Minitest 处理身份验证以进行集成测试

css - heroku 不从供应商 .css 文件加载图像

javascript - Ruby on Rails Assets 管道无法正常工作