2013-01-15 140 views
0

我正在使用此example for file uploaderhighcharts在ruby中的應用程序。 爲了得到圖表的工作,我不得不添加下列文件到我的應用程序/資產/ JavaScript的:Ruby on Rails,javascripts衝突

highcharts.js
jQuery的1.4.2.min.js
rais.js

而且我的charts.html.erb以下代碼:

<%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "jquery-1.4.2.min", "rails", "highcharts" %> 
    <%= csrf_meta_tag %> 

我的圖表看起來很漂亮,但我無法上傳文件。這些javascripts之間存在某種衝突。 我想將這3個文件移動到另一個目錄,併爲charts.html.erb中的代碼定義一個路徑,以便它可以找到所有必要文件的位置。

我不知道在代碼中寫入定義路徑的位置。 是這樣的:

<%= stylesheet_link_tag "application" %> 
    <%= javascript_include_tag "public/javascripts/jquery-1.4.2.min", "public/javascripts/rails", "public/javascripts/highcharts" %> 
    <%= csrf_meta_tag %> 

,但它告訴我一個錯誤在一個控制檯:

Started GET "/assets/public/javascripts/rails.js" for 127.0.0.1 at 2013-01-15 16:21:19 +0100 
Served asset /public/javascripts/rails.js - 404 Not Found (33ms) 

ActionController::RoutingError (No route matches [GET] "/assets/public/javascripts/rails.js") 

在此先感謝

+0

您是否嘗試在application.js文件中使用includes而不是像那樣添加它們? –

+0

我沒有,我不得不知道如何去做。我很新的軌道 - ) – Tonja

+0

jQuery 1.4.2是相當古老的;版本1.9是最近發佈的。 – Pointy

回答

2

你並不需要定義每每個JavaScript文件名都明確地在最新的rails版本中。

這是因爲application.js文件,它需要樹形式的每個js給你。

//= require jquery 
//= require jquery_ujs 
//= require_tree . 

你只需要做這樣的 -

<%= stylesheet_link_tag "application", :media => "all" %> 
<%= javascript_include_tag "application" %> 
<%= csrf_meta_tags %> 
+0

這是應該如何使用[asset-pipeline in Rails](http://guides.rubyonrails .org/asset_pipeline.html)。 –

+0

打敗我。雖然好回答:) –

0

回答你的問題:你可以定義自己的路徑資產(但不推薦),就在路徑之前加斜槓。像 <%= javascript_include_tag "/public/javascripts/jquery-1.4.2.min.js", "/public/javascripts/rails.js", "/public/javascripts/highcharts.js" %>