Link Custom CSS and Javascript to Rails After Deployment

半腔热情 提交于 2020-01-03 03:28:07

问题


I have a Rails App it's css and js links works fine locally since I have used :

    <link href="assets/bootstrap.css" rel="stylesheet">
    <link href="assets/bootstrap-responsive.css" rel="stylesheet">
    <link href="assets/font-awesome.css" rel="stylesheet">
    <link href="assets/bootswatch.css" rel="stylesheet">

I Googled more than it should all I find is this Heroku Guide , I'm so confused about the assets pipeline thing! I ran this command as well :

bundle exec rake assets:precompile

and it did create some files in the public dir as mentioned in the guide :

Now on Heroku Everything is plain, no design no nothing of Css and JS.

While when I run

Heroku Logs

This is what I get some serious NO Route Match for the CSS and JS files as follow :

2013-06-10T10:06:28.184255+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/assetscv.png"):

This is only one line, I get bunch of more of these for other files, and pre generated loggs lines

any help would be appreciated Thanks!

PS:

I tried

       <%= stylesheet_link_tag "bootstrap" %>
<%= stylesheet_link_tag "bootstrap-responsiv" %>
 <%= stylesheet_link_tag "bootswatch", "font-awesome.css" %>

I got bunch of errors and on heroku it says sorry something went wrong


回答1:


In application.rb(config/application.rb)

    # Enable the asset pipeline
    config.assets.enabled = true

After this in production.rb file(config/environments/production.rb) do like this

      # Settings specified here will take precedence over those in config/application.rb

      # Code is not reloaded between requests
      config.cache_classes = true

      # Full error reports are disabled and caching is turned on
      config.consider_all_requests_local       = false
      config.action_controller.perform_caching = true

      # Disable Rails's static asset server (Apache or nginx will already do this)
      #config.serve_static_assets = true

      # Compress JavaScripts and CSS
      config.assets.compress = true

      # Don't fallback to assets pipeline if a precompiled asset is missed
      config.assets.compile = false

      # Generate digests for assets URLs
      config.assets.digest = true

then you should include all your js and css like this,

     config.assets.precompile += %w(jquery.js jquery_ujs.js PIE.js check_list.js dom-drag.js jquery-1.4.2.min.js jquery-1.7.1.min.js jquery-1.8.3.js jquery-ui.js jquery.accordion.js jquery.corner.js jquery.countdown.js jquery.dimensions.js jquery.masonry.min.js jquery.tinycarousel.min.js jquery.validationEngine-en.js jquery.validationEngine.js questionnaire.js prototype.js users.js)

     config.assets.precompile += %w(ie7.css ie8.css about_us.css admin_menu.css blog.css default.ultimate.css designer_directory.css designer_directorynew.css drop.css greenstore.css menu.css MenuMatic_dev.css message_view.css product.css setting1.css style1.css styles.css validationEngine.jquery.css)

After that precompile using this command

     $ RAILS_ENV=production bundle exec rake assets:precompile

Then $ heroku restart

It should work.

For more details please read http://guides.rubyonrails.org/asset_pipeline.html



来源:https://stackoverflow.com/questions/17021635/link-custom-css-and-javascript-to-rails-after-deployment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!