Ruby On Rails won't load assets from app/assets - ruby-on-rails

I'm starting in de Ruby on Rails world (I'm the noobest noob), as far as I know, when I put .css and .js into the app/assets/stylesheets folder and javascripts folder, respectively, it should automatic load those files. But it just doesn't.
I've found this code line
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
But it just renders the application.css into the HTML code.
Is there some setting I'm missing?
Ruby -v: 2.2.4p230 (2015-12-16 revision 53155) [i386-mingw32]
Rails -v: 4.2.6

stylesheet and javascript folders are different asset types, so you should declare separately.
this is my application.html.erg layout.
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

Well, the problem wasn't Ruby, wasn't Rails... Wasn't even me (I think). The problem was Windows. I did exactly the same in the Mint partition and everything worked. Thanks you, guys!

Related

Webpacker Deployment Issue Rails 6

Here is the error code:
ActionView::Template::Error (Webpacker can't find stylesheets in /app/public/packs/manifest.json. Possible causes:
1. You want to set webpacker.yml value of compile to true for your environment unless you are using the `webpack -w` or the webpack-dev-server.
2. webpack has not yet re-run to reflect updates.
3. You have misconfigured Webpacker's config/webpacker.yml file.
4. Your webpack configuration is not creating a manifest.
Your manifest contains: {
"application.css": "/packs/css/application-77c6d56c.css",
"application.js": "/packs/js/application-202b434086ff6248f760.js",
"application.js.map": "/packs/js/application-202b434086ff6248f760.js.map",
"entrypoints": {
"application": {
"css": [ "/packs/css/application-77c6d56c.css" ],
"js": [ "/packs/js/application-202b434086ff6248f760.js" ],
"js.map": [ "/packs/js/application-202b434086ff6248f760.js.map" ]
And the offending code is:
7: <%= stylesheet_link_tag "https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" %>
8: <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
9: <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
10: <%= stylesheet_pack_tag 'stylesheets', media: 'all', 'data-turbolinks-track': 'reload' %>
11: <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
12: <link rel="stylesheet" href="https://unpkg.com/tailwindcss/dist/tailwind.min.css">
I realize that I have unnecessary link_tag(s), but I put them there just to make sure everything went through correctly. All of this works flawlessly in development but, once deployed to Heroku, it just crashes here so nothing is working right now.
I tried adding some #import(s) to connect all the css/js files to no avail. I'm not sure what the issue is at this point.
Using Rails 6, Webpacker, TailwindCSS, no real JS in usage so deleting all the script stuff wouldn't be a real issue, I just left it because this is a project still in development and will include JS at some point.
I had this same problem and noticed several templates/tutorials for adding Tailwind CSS to Rails specify adding to application.html.erb:
<%= stylesheet_pack_tag 'stylesheets', media: 'all', 'data-turbolinks-track': 'reload' %>
while others specify:
<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
Not a webpack expert, but doing some reading convinced me that the name in the stylesheet_pack_tag helper is what webpack will look to bundle (from your \app\javascript\packs folder) but then is also the stylesheet name bundled by webpack (from your \public\packs\css folder) that your layout is looking for. It's really confusing, but I guess this is the convention over configuration thing. It also jives with the error being thrown above. If you rename your tag so it's application it should solve your error (at least it seemed to work for me). Maybe the stylesheets name is relevant for an older rails version?

Bootstrap Gem Installation Issue

I have added the bootstrap-sass gem and have installed the bundle. I have gone to github and think I have followed the directions correctly to finish the install for ruby on rails. It doesn't appear to be making a difference however on my local site - no font/formatting changes have been made, even after the install.
I am using a PC, https://github.com/findingtheway/pin
Change your app/views/layouts/application.html.erb to this:
<head>
<title>Pin</title>
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
<%= csrf_meta_tags %>
</head>
Rails uses application by default you have default which is why bootstrap is not loading.

Rails assets rendering 404 out of the box

I've started a new Rails (4.2.2) app, only with some basic functionality. But the javascript and css files aren't rendered:
I have installed the sprockets gem and I've tried explicitly adding the 'sprockets' gem to my Gemfile (and running bundle install), but it didn't help.
Here is my application.js:
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
And these two lines are in my application.html.erb
<%= stylesheet_link_tag 'default', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'default', 'data-turbolinks-track' => true %>
And they render as follows:
I have Ruby 2.1.6p336 installed on Windows 8.1
Does somebody know where to look for answers or know what is going wrong? I'm pretty new to rails.
i think you need to change your javascript and stylesheet tag like this. it fetches details from application.js and application.css not from default ones
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
<%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>

Installing Bootstrap Gem

I'm currently learning ruby on rails and
trying to install bootstrap gem
but this message shows up when I do rails server.
An #import loop has been found:
<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>
I followed every step correctly but this shows up

Errno::ENOENT No such file or directory Rails 4

Showing "/Users/Christian/Desktop/sample_app/app/views/layouts/application.html.erb" where line #5 raised:
No such file or directory - /Users/Christian/Desktop/vendor/assets
(in /Users/Christian/Desktop/sample_app/app/assets/stylesheets/custom.css.scss)
<html>
<head>
<title><%= full_title(yield(:title)) %></title>
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>
<%= javascript_include_tag "application", "data-turbolinks-track" => true %>
<%= csrf_meta_tags %>
<%= render 'layouts/shim' %>`
I was developing on linux ubuntu and it works fine there, I copied the folder to my mac and it no longer works. custom.css.scss is in the correct location
The problem is on line number 5 :
<%= stylesheet_link_tag "application", media: "all", "data-turbolinks-track" => true %>`
Change sass-rails version to 4.0.3 and leave the rest as it is. Remove Gemfile.lock when necessary, and then:
$ bundle update
$ bundle install
Finally, don't forget to restart your rails server!
In your Gemfile change the sass-rails version to 4.0.3. Get rid of a version number for sprockets. Delete the Gemfile.lock. Run the bundle install again

Resources