Precompilation of assets. Good, but 404 when trying to get files.

Ok, so compiling my assets works fine, but when I run:

thin start -e production

none of my javascript or css is loading. My browser also cancels requests for my assets. I'm not sure why this is so, but I suspect because he thinks about them. If you look at the top image, you will see that my application.css file has been compiled and saved in my resources folder, but when I try to access the file, I get a 404.html file.

What gives!?

enter image description here

enter image description here

Edit:

I was invited to publish my opinion. Here are some of the code in the project:

 <% content_for :title, 'Quick Quote' %> <% content_for :subtotal, get_subtotal %> <% content_for :stylesheet_includes do %> <%= stylesheet_link_tag "quote", "jquery-ui-timepicker-addon" %> <% end %> <% if @quote.errors.any? %> <div class="flash alert"> <% @quote.errors.full_messages.each do |msg| %> <div><%= msg %></div> <% end %> </div> <% end %> <h1>Quick Quote</h1> 

my layout:

 <!DOCTYPE html> <html> <head> <title><%= (yield(:title) + " - " unless yield(:title).blank?).to_s + "Online Scheduler Order Taker" %></title> <%= stylesheet_link_tag "application", "jquery-ui-timepicker-addon.css", :media => "all" %> <%= yield :stylesheet_includes %> <%= javascript_include_tag "application" %> <%= yield :javascript_includes %> <%= csrf_meta_tags %> </head> <body> 

code in my production.rb

 config.assets.precompile += %w( quote.css jquery-ui-timepicker-addon.css prices.css contact.css ) 

Top of my .css.scss.erb application:

 /* * This is a manifest file that'll be compiled into application.css, which will include all the files * listed below. * * Any CSS and SCSS file within this directory, lib/assets/stylesheets, vendor/assets/stylesheets, * or vendor/assets/stylesheets of plugins, if any, can be referenced here using a relative path. * * You're free to add application-wide styles to this file and they'll appear at the top of the * compiled file, but it generally better to create a new file per style scope. * *= require_self * * require_tree . <- commented out * require jquery-ui-timepicker-addon.css <- commented out */ 

my whole application.js file

 // This is a manifest file that'll be compiled into application.js, which will include all the files // listed below. // // Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts, // or vendor/assets/javascripts of plugins, if any, can be referenced here using a relative path. // // It not advisable to add code directly here, but if you do, it'll appear at the bottom of the // the compiled file. // // WARNING: THE FIRST BLANK LINE MARKS THE END OF WHAT TO BE PROCESSED, ANY BLANK LINE SHOULD // GO AFTER THE REQUIRES BELOW. // //= require jquery //= require jquery_ujs //= require jquery-ui //= require jquery-ui-timepicker-addon.js //= require_tree . 
+7
source share
3 answers

Check the config/environments/production.rb file and add the following line to it (if it is not already specified):

 config.serve_static_assets = true 
+6
source

Rails recommends that you disable this config.serve_static_assets setting by default, i.e. set it to false. Here is the default configuration in config/environments/production.rb generated in the rails app

Disable static Rails resource server (Apache or nginx will already do this)

config.serve_static_assets = false

So, if you set it to true in your local application, then that is fine anyway. But if you are deploying your application on Apache or ngix or something other than heroku, it is not recommended to do config.serve_static_assets=true in your production.rb configuration file. Here is the documentation in the Rails manuals.

config.serve_static_files configures Rails to serve static files. The default value is true, but in a production environment like server software (such as NGINX or Apache), the application used to run instead should use static assets. In contrast, set this to true at work (absolutely not recommended!) Or test your application in production mode using WEBrick. Otherwise, you will not be able to use page caching, and requests for files that exist regularly under the shared directory will still get into your Rails application.

URL - http://guides.rubyonrails.org/configuring.html

+7
source

Can you put this line in the current environment.rb environment?

 config.serve_static_assets=true 

Link: here

+2
source

All Articles