使用单个脚本文件和rails资产

时间:2015-09-23 16:03:22

标签: javascript jquery ruby-on-rails ruby-on-rails-4 asset-pipeline

我的应用程序使用旧版本的jquery,我想在我的应用程序中使用新的jquery版本进行POC以显示一些好处,同时重写一些后端。

所以我做的是我在控制器中添加了一个名为poc的布局,并从poc布局中删除了应用程序javascript标记。但我把它留在了poc布局中:

= yield :footer_js

这样我就可以在单个页面上加载javascript了,我这样做了:

- content_for :footer_js do
  = javascript_include_tag 'new_jquery'

在我的新页面上只有jquery加载,我添加到app/assets/javascript/poc/new_jquery.js并且它在我的本地计算机(开发环境)上运行良好。

然而,一旦我将它部署到生产中,这是一个不同的故事,没有任何东西在加载。我的脚本位于app/assets/javascript/poc,在此下面有new_jquery.js本身。

然后app/assets/javascript/poc/servicesapp/assets/javascript/validations下的文件会在视图中单独加载。

问题: 我这样做是对的吗?如果是,我如何让这些文件在资产管道生产中工作?或者,如果我以错误的方式执行此操作,那么在生产中测试具有独立依赖关系的隔离页面的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

我所做的是按照我最终使用新布局的答案中所述,但不是在视图中单独包含javascript文件,而是在poc.js旁边添加了app/assets/javascript application.js,并在布局中引用了poc.js所需的所有js文件并包含poc.js

我还在application.rb中添加了poc.js

Rails.application.config.assets.precompile += ['admin.js', 'admin.css', 'poc.js']

工作得很好!