0

I have recently been converted to the Ruby on Rails side so I am new to the art of the asset pipeline and ruby on rails in general. The problem that I am having at the moment is that when I try to load my ruby on rails page up it is getting a 404 error on my default.js and my default.css. These two files are in the directory app/assets/javascripts and app/assests/stylesheets respectively.

I believe that this problem is caused by my stylesheet_link_tags and javascript_link_tags inside my application.html.erb. Below you can see my 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> 

At the beginning the link tags had application after them but this SO Question led me to believe that changing them to default would fix the problem.

The error that occurs when I change default back to application is the following

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 

I have not changed my application.js or application.css in any way and look how they would look when you build a rails application.

If you need to see my application controller it looks like this

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 

Any help in solving this question would be greatly appreciated. Thank you for you time.

EDIT:

I resolved my problem by changing default to application.css and application.js respectively. After that I went into my application.js folder and added =require turbolinks without the // and then voila it started working.

    2 Answers 2

    1

    You can require your JS and CSS files in your application.[js|css] In your application.js, append //= require default and in your application.css, append *= require default, default being the name of your JS/CSS files respectively. You can learn more about the Assets Pipeline here: http://guides.rubyonrails.org/asset_pipeline.html

      1

      By default Rails will look for application.js for the manifest. If you want to use default.js you have to implicitly instruct Rails to look for it:

      Try adding the following to /config/initializers/assets.rb

      Rails.application.config.assets.precompile += %w( default.js ) 
      2
      • Do I then change my application.js and application.css to default.js and default.css?
        – terrabl
        CommentedJun 3, 2016 at 17:59
      • Yes, that's the idea.
        – olvado
        CommentedJun 13, 2016 at 14:16

      Start asking to get answers

      Find the answer to your question by asking.

      Ask question

      Explore related questions

      See similar questions with these tags.