2014-03-31 42 views
0

在我的Rails應用程序的JavaScript文件,我試圖CSS加載到我的看法是這樣的:Rails應用程序不加載使用資產

<link src="assets/stylesheets/myStyleSheet.css" type="text/css" rel="stylesheet"> 

和它的作品。

當我試圖加載javascript如下文件,

<script src="assets/javascripts/libs/modernizr-2.6.2.min.js" type="text/javascript"></script> 

我得到一個404 error(同樣的錯誤了一些圖片也可以)

我的所有文件都在正確的地方,有人有想法解決它嗎?

謝謝。

回答

1

你應該更好地利用asset pipeline包括JS和CSS文件到您的應用程序。

對於當前的例子,把你的應用程序/資產/ Java腳本/ application.js中

//= require ./libs/modernizr-2.6.2 

在您的應用程序/資產/樣式表/ application.css.scss

/* 
*= require ./myStyleSheet 
*/ 

和你的.html.erb文件(如application.html.erb,在<head>節)

<%= stylesheet_link_tag "application" %> 
<%= javascript_include_tag "application" %> 
+0

謝謝你們,這是很多的幫助! 但還有一件事:我爲js做了一個空白頁面,那麼我怎樣才能做到這一點? – F4Ke

+0

對於圖片,將它們放到app/assets/images中,然後通過<%= image_tag'my_image.jpg'%> – buru

+0

顯示在頁面上,是的,謝謝 – F4Ke

0

在src的開始處的資產之前放置一個斜槓'/'。並且也應該將css文件包含在鏈接href而不是src中,雖然它可以工作,但不是一個好的做法。

<link href="/assets/css_file_path.css" media="screen" rel="stylesheet" /> 
<script src="/assets/path_to_js_file.js"></script> 
0

請加自定義路徑資產管道在下面的文件:做pre-compilation

# config/application.rb 
config.assets.paths << Rails.root.join("app", "assets", "javascripts", "libs") 

然後,在你的JavaScript清單文件(大部分的application.js),要求以把它的js文件:

//= require modernizr-2.6.2.min 

在你的CSS清單文件(主要是application.css.sass),添加下面一行:

/* 
*= require myStyleSheet 
*/ 

如果您有任何單獨的外部JavaScript文件,包括,你可以添加他們預編譯數組中config/application.rb

config.assets.precompile += ['custom.min.js'] 

如果你想看到通過資源路徑加載的資產,你可以在控制檯中使用:

Rails.application.config.assets.paths 

希望這可能是最好的選擇使用。 :)

相關問題