我开发了一个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中使用资产管道和&#34; require&#34;关键词。但我不知道该怎么做。
我还尝试将所有代码放在一个文件中,但文件在kinetic
文件之前加载!我得到错误,因为我需要先加载库文件。但是,如果我刷新页面,它会再次运作。
有任何帮助吗?我不知道该怎么做,让它正常工作。我是Ruby on Rails的新手,我还在学习如何做这种&#34;配置&#34;。
修改 我没有使用application.js加载js文件,因为我无法这样做。但这是:
//= require jquery
//= require bootstrap-sprockets
//= require jquery
//= require jquery_ujs
//= require turbolinks
/*
require kinetic
require diagramtool
require_tree .
*/
答案 0 :(得分:3)
刚才这样解决了:
创建了一个清单文件diagrams.js:
//= require diagramtool/kinetic
//= require diagramtool/diagramtool0
//= require diagramtool/diagramtool1
//= require diagramtool/diagramtool2
在视图中添加了这个:
<%= javascript_include_tag "diagrams" %>
将资产管道与清单文件一起使用。