我最近被转换为Ruby on Rails方面,所以我对资产管道的艺术和一般的rails上的ruby都是新手。我目前遇到的问题是,当我尝试在rails页面上加载我的ruby时,我的[sum(zip(*x)[1]) for x in data]
和default.js
上出现了404错误。这两个文件分别位于目录default.css
和app/assets/javascripts
中。
我认为此问题是由我app/assests/stylesheets
内的stylesheet_link_tags
和javascript_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
分别更改为default
和application.css
来解决了我的问题。之后我进入了我的application.js文件夹并添加了application.js
而没有=require turbolinks
,然后开始工作了。
答案 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 )