2014-10-21 2 views
1

kineticjs를 사용하여 javascript 다이어그램 도구를 개발했으며 일부 다른 js 파일을로드해야합니다. 하지만 순서대로로드해야합니다.레일즈 응용 프로그램에서 사용자 정의 javascript 파일로드

<%= 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) 

그리고 파일이 있습니다 in assets/javascripts/diagramtool

문제는 파일을로드하기 위해 위의 코드가있는보기로 이동할 때 순서대로로드되지 않는 것입니다. 하지만 페이지를 새로 고침하면 순서대로로드됩니다!

그래서, 내 질문은

내가 JS 파일을 보장하기 위해로드입니다 수있는 방법인가? 페이지를 새로 고침 할 때 파일이 순서대로로드되는 이유는 무엇입니까? 왜 응용 프로그램을 탐색 할 때 순서대로로드되지 않는 이유는 무엇입니까?

다른 방법이 있습니까? 필자는 "require"키워드가있는 자산 파이프 라인을 사용하여 application.js에서이 작업을 수행하려고했습니다. 그러나 나는 거기에서 그것을하는 방법을 모른다.

또한 모든 코드를 하나의 파일에 넣으려고했지만 파일이 kinetic 파일보다 먼저로드됩니다. 라이브러리 파일을 먼저로드해야하기 때문에 오류가 발생합니다. 하지만 페이지를 새로 고침하면 다시 작동합니다.

어떤 도움이 필요합니까? 나는이 일을 제대로 수행하기 위해 무엇을해야 할지를 정말로 모른다. 나는 Ruby on Rails에 대해 새로운데, 나는 아직도 이런 종류의 "설정"을하는 법을 배우고있다.

편집 : 나는 그런 식으로 일을 할 수 없었기 때문에 가 나는 JS 파일을로드 할 application.js를 사용하지 않는. 그러나 여기있다 :

만든 매니페스트 파일 diagrams.js :

//= require diagramtool/kinetic 
//= require diagramtool/diagramtool0 
//= require diagramtool/diagramtool1 
//= require diagramtool/diagramtool2 

추가 된이 뷰 :

<%= javascript_include_tag "diagrams" %> 

//= require jquery 
//= require bootstrap-sprockets 
//= require jquery 
//= require jquery_ujs 
//= require turbolinks 

/* 
require kinetic 
require diagramtool 
require_tree . 
*/ 
+0

js 파일 "application.js"가 필요한 곳에서 코드를 제공 할 수 있습니까? –

+0

@AalaaMohamed application.js 파일에서 수행하는 방법을 모르겠지만 위의 내용을 편집 섹션에 추가했습니다. – Mario

답변

3

그냥 이런 식으로 해결 매니페스트 파일과 함께 자산 파이프 라인 사용

관련 문제