【问题标题】:Include custom folder specific assets in ruby on rails在 ruby​​ on rails 中包含自定义文件夹特定资产
【发布时间】:2016-03-14 07:17:27
【问题描述】:

我正在尝试创建单独的文件夹来保存与后端和前端相关的资产。我计划了以下文件夹结构:app/assets/dashboard/javascripts,而不是通常的app/assets/javascripts。

后端通过app/views/layouts/dashboard.html.erb 提供服务,并通过以下方式包含资产:

<%= stylesheet_link_tag 'dashboard/dashboard', params[:controller], media: 'all' %>
<%= javascript_include_tag 'dashboard/dashboard', params[:controller] %>

前端通过app/views/layouts/application.html.erb 提供服务,并通过以下方式包含资产:

<%= stylesheet_link_tag 'store/application', params[:controller], media: 'all' %>
<%= javascript_include_tag 'store/application', params[:controller] %>

我不确定以这种方式包含资产的正确方法是什么,因此在控制台中出现http://dashboard.localhost.com:3000/javascripts/dashboard/javascripts/dashboard.js 的404 not found 错误

我也尝试将脚本路径更改为&lt;%= javascript_include_tag 'store/javascripts/application', params[:controller] %&gt;,但它也不起作用。 还尝试将下面提到的here 代码添加到 application.rb,但它也不起作用:

Dir.glob("#{Rails.root}/app/assets/**/").each do |path|
      config.assets.paths << path
end

通过这些设置,控制台中填充的路径如下:

[9] pry(main)> Rails.application.config.assets.paths 
=> ["/home/vipin8169/projectRoot/inmonarch_website/app/assets/images",
 "/home/vipin8169/projectRoot/xyz/app/assets/javascripts",
 "/home/vipin8169/projectRoot/xyz/app/assets/stylesheets",
 "/home/vipin8169/projectRoot/xyz/vendor/assets/javascripts",
 "/home/vipin8169/projectRoot/xyz/vendor/assets/stylesheets",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/jquery-rails-4.1.0/vendor/assets/javascripts",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/coffee-rails-4.1.1/lib/assets/javascripts",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/react-rails-1.6.2/lib/assets/react-source/development-with-addons",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/react-rails-1.6.2/lib/assets/javascripts/",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/bootstrap-sass-3.3.6/assets/stylesheets",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/bootstrap-sass-3.3.6/assets/javascripts",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/bootstrap-sass-3.3.6/assets/fonts",
 "/home/vipin8169/.rvm/gems/ruby-2.2.3@rails426/gems/bootstrap-sass-3.3.6/assets/images"]

rails 中是否支持,以这种方式更改 assets 目录结构?

【问题讨论】:

    标签: ruby-on-rails-4 asset-pipeline


    【解决方案1】:

    在您的 application.rb 文件中。添加这个

    config.assets.enabled = true

    config.assets.paths

    它会在资产路径下添加这个文件夹。之后

    stylesheet_link_tag 'dashboard', params[:controller], media: 'all'

    会起作用的。

    【讨论】:

    • 添加了这两个:config.assets.paths &lt;&lt; Rails.root.join("app", "assets", "dashboard") 和 config.assets.paths &lt;&lt; Rails.root.join("app", "assets", "store"),但 dashboard.localhost.com:3000/stylesheets/dashboard/… 仍然得到 404
    • 你重启服务器了吗?
    • hmmm .. 我也是这样做的。可能是 ruby​​/rails 的版本问题?
    • 使用ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]和Rails 4.2.6
    猜你喜欢
    • 1970-01-01
    • 2021-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-27
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多