Javascript 使用单个脚本文件和rails资源
我的应用程序使用了jquery的旧版本,我想在我的应用程序中使用新的jquery版本进行POC,以显示一些好处,同时重写一些后端 因此,我所做的是在控制器中添加了一个名为Javascript 使用单个脚本文件和rails资源,javascript,jquery,ruby-on-rails,ruby-on-rails-4,asset-pipeline,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_
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/services
和app/assets/javascript/validations
下的文件,我在视图中单独加载这些文件
问题:
我这样做对吗?如果是,我如何让这些文件在生产中使用资产管道?或者,如果我做得不对,那么在生产环境中测试具有独立依赖项的独立页面的正确方法是什么?我所做的正如答案中所述,我最终使用了新的布局,而不是在视图中单独包含javascript文件,我在
application.js
旁边的app/assets/javascript
中添加了一个poc.js
,并引用了我从poc.js
中需要的所有js文件,并将poc.js
包含在布局中
我还在application.rb中添加了poc.js
:
Rails.application.config.assets.precompile += ['admin.js', 'admin.css', 'poc.js']
工作得很好 你试过
javascript\u include\u标签'poc/new\u jquery'
?当我使用new\u jquery
时,它已经在本地主机上工作了。我很确定这不会对编译产生任何影响,但我会尝试一下。这背后有什么原因吗?是的,如果它在本地主机上运行,这就没有什么意义了,我只是想看看是否有什么东西突然出现。实际上,我打赌在生产环境中会出现预编译问题(由于production.rb
或诸如此类的配置错误,文件未预编译,未找到)。您是否使用rake assets:precompile
在本地编译了资产?不是,你能试试吗?另外,当你加载生产站点时,你的浏览器上是否有一个404,用于特定的js文件?