Reputation: 35
I am running a development server and I'm trying to load some static pages and files (images, css and javasripts) in my rails application for testing. (In general, I'm new in rails. The Rails installation has been done on Linux subsystem in Windows 10).
Although I have placed the files in assets/images
, assets/javascripts
and assets/stylesheets
I couldn't manage to read these files in my test apprication when server runs. I receive the following errors almost for all files I have added:
ActionController::RoutingError (No route matches [GET] "/assets/javascripts/jquery.min.js"):
ActionController::RoutingError (No route matches [GET] "/assets/javascripts/bootstrap.min.js"):
ActionController::RoutingError (No route matches [GET] "/assets/javascripts/jqBootstrapValidation.js"):
and for images
ActionController::RoutingError (No route matches [GET] "/assets/images/portfolio/dreams-preview.png"):
The same applies for some css files also (not all).
I tried several ideas I found here in order to solve this but I had no luck. I tried to setup:
config.serve_static_files = true
in development.rb
and
rake assets:precompile
Obviously, these files are not visible by rails application but I still don't understand what I have to do to make them visible. Can you please help me on this?
Upvotes: 2
Views: 11087
Reputation: 35
Finally, in order to resolve this error and transfer my static pages to Rails I had to modify my homepage.html.erb
as follows:
Stylesheet links:
<%= stylesheet_link_tag "bootstrap.min.css" %>
the following also works:
<link href="assets/bootstrap.min.css" rel="stylesheet">
Javascript include:
<%= javascript_include_tag "bootstrap.min.js" %>
In general, I found that no precompilation is necessary. I tested and it works with or without precompilation. The following also works:
<script src="assets/bootstrap.min.js"></script>
Tag for images:
<%= image_tag("portfolio/dreams-preview.png", class: "img-responsive img-centered") %>
Rails use by default the normal path for images (assets/images
). The full path should not be used. Unless the path for images is different, use only the path deeper than assets/images
, if exists.
No changes were made in application.html.erb
but precompilation for javascripts and stylesheets is necessary in assets.rb
:
Rails.application.config.assets.precompile += ['agency.min.js', 'agency.min.css', ...]
Eventually the site works, although some conflicts in the execution of javascripts might be appear.
Upvotes: 0
Reputation: 2610
You need to include these files in application.js manully or just write //= require_tree .
to load all js
Similarly, you have to work for css. Add *= require_tree .
in application.css
.
Upvotes: 2