在Ruby on Rails中加载CSS和JS文件

时间:2016-06-03 16:51:59

标签: javascript css ruby-on-rails

我最近被转换为Ruby on Rails方面,所以我对资产管道的艺术和一般的rails上的ruby都是新手。我目前遇到的问题是,当我尝试在rails页面上加载我的ruby时,我的[sum(zip(*x)[1]) for x in data] default.js上出现了404错误。这两个文件分别位于目录default.cssapp/assets/javascripts中。

我认为此问题是由我app/assests/stylesheets内的stylesheet_link_tagsjavascript_link_tags引起的。您可以在下面看到我的application.html.erb

application.html.erb

一开始,链接标记后面有<!DOCTYPE html> <html> <head> <title>Loadtest</title> <%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track' => true %> <%= javascript_include_tag 'default', 'data-turbolinks-track' => true %> <%= csrf_meta_tags %> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width = device-width, initial-scale = 1"> <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <link rel="stylesheet" type="text/css" href="http://fonts.googleapis.com/css?family=Ubuntu"> </head> <body> <div id = "content"> <%= yield %> </div> </body> </html> ,但是SO Question让我相信将它们更改为application可以解决问题。

default更改回default时发生的错误如下:

application

我没有以任何方式更改ExecJS::ProgramError in Application#home Showing c:/Users/***/Desktop/loadtest/app/views/layouts/application.html.erb where line #5 raised: TypeError: Object doesn't support this property or method Rails.root: c:/Users/aterra/Desktop/loadtest application.js,看看在构建rails应用程序时它们的外观。

如果您需要查看我的应用程序控制器,它看起来像这样

application.css

非常感谢任何帮助解决这个问题。谢谢你的时间。

编辑:

我通过将class ApplicationController < ActionController::Base # Prevent CSRF attacks by raising an exception. # For APIs, you may want to use :null_session instead. protect_from_forgery with: :exception def home end end 分别更改为defaultapplication.css来解决了我的问题。之后我进入了我的application.js文件夹并添加了application.js而没有=require turbolinks,然后开始工作了。

2 个答案:

答案 0 :(得分:1)

您可以在application.[js|css]中要求提供JS和CSS文件 在您的application.js中,附加//= require default 在你的application.css中,追加*= require default,默认分别是你的JS / CSS文件的名称。 您可以在此处了解有关资产管道的更多信息:http://guides.rubyonrails.org/asset_pipeline.html

答案 1 :(得分:1)

默认情况下,Rails会为清单查找application.js。如果你想使用default.js,你必须隐含地指示Rails寻找它:

尝试将以下内容添加到/config/initializers/assets.rb

Rails.application.config.assets.precompile += %w( default.js )