在Rails应用程序中加载自定义javascript文件
Load custom javascript files in Rails app
我开发了一个javascript图表工具(使用kineticjs),需要加载一些不同的js文件。但它们需要按顺序加载。我设法做到这一点:
在特定视图内(在文件顶部):
<%= javascript_include_tag "kinetic" %>
<%= javascript_include_tag "diagramtool/diagramtool0" %>
<%= javascript_include_tag "diagramtool/diagramtool1" %>
<%= javascript_include_tag "diagramtool/diagramtool2" %>
<%= javascript_include_tag "diagramtool/diagramtool3" %>
<%= javascript_include_tag "diagramtool/diagramtool5" %>
<%= javascript_include_tag "diagramtool/diagramtool6" %>
这个在assets.rb:
# Be sure to restart your server when you modify this file.
# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'
# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile += %w( search.js )
Rails.application.config.assets.precompile += %w( kinetic.js )
Rails.application.config.assets.precompile += %w( diagramtool/diagramtool0.js )
Rails.application.config.assets.precompile += %w( diagramtool/diagramtool1.js )
Rails.application.config.assets.precompile += %w( diagramtool/diagramtool2.js )
Rails.application.config.assets.precompile += %w( diagramtool/diagramtool3.js )
Rails.application.config.assets.precompile += %w( diagramtool/diagramtool5.js )
Rails.application.config.assets.precompile += %w( diagramtool/diagramtool6.js )
文件位于assets/javascripts/diagramtool
中
问题是,当我移动到具有上面的代码来加载文件的视图时,它们没有按顺序加载。但如果我刷新页面,它们会按顺序加载!
所以,我的问题是
如何确保js文件按顺序加载?为什么刷新页面时会按顺序加载文件?为什么当我浏览应用程序时,它们没有按顺序加载?
还有别的办法吗?我尝试在application.js中使用带有"require"关键字的资产管道来实现这一点。但我不知道该怎么做。
我还尝试将所有代码放在一个文件中,但该文件是在kinetic
文件之前加载的!我会出现错误,因为我需要先加载库文件。但如果我刷新页面,它会再次工作。
有什么帮助吗?我真的不知道该怎么办,让它正常工作。我是RubyonRails的新手,我仍在学习如何进行这种"配置"。
编辑:我没有使用application.js来加载js文件,因为我不能用这种方式。但现在是:
//= require jquery
//= require bootstrap-sprockets
//= require jquery
//= require jquery_ujs
//= require turbolinks
/*
require kinetic
require diagramtool
require_tree .
*/
只是这样解决的:
创建了清单文件diagrams.js:
//= require diagramtool/kinetic
//= require diagramtool/diagramtool0
//= require diagramtool/diagramtool1
//= require diagramtool/diagramtool2
在视图中添加了这个:
<%= javascript_include_tag "diagrams" %>
将资产管道与清单文件一起使用。
相关文章:
- 表达式引擎扩展开发-向呈现的条目添加自定义javascript
- Can用户'MediaWiki上的自定义JavaScript调用Lua模块
- 动态加载的自定义javascript/jQuery/HTML5音频播放器的问题
- 使用drupal中自定义javascript文件中的一个函数
- 使用浏览器在页面(客户端)上运行自定义JavaScript来模拟点击?怎么做
- 使用谷歌地图:一个返回undefined的自定义javascript函数
- target=“_空白“;使用自定义javascript生成的html页面
- Meteor:选择自定义javascript和自定义css作为模板
- 用自定义javascript全局命名空间替换窗口
- 为什么自定义 JavaScript 文件放在客户端文件夹中时不在我的 Meteor 模板上呈现
- 创建自定义 Javascript 对象的惯用方法有哪些
- 当通过选择页面上所有复选框的 jQuery 脚本选中复选框时,如何触发自定义 javascript 事件
- 我的自定义javascript旋转木马无法正常工作
- 自定义javascript日期
- 如何在联系人表单7 Wordpress中添加自定义javascript函数
- 如何获取从jQuery click()函数调用的特定于标记的自定义Javascript函数
- 自定义javascript开/关开关可以'I don’我不去上班
- 自定义Javascript Alert Popup onclick svg路径
- 定义自定义JavaScript异常的较短方法
- 如何在PlayN中添加对自定义JavaScript事件触发器的支持