【问题标题】:Rails - Rails.root.join misbehaving after deploymentRails - Rails.root.join 部署后行为不端
【发布时间】:2016-03-31 17:23:11
【问题描述】:

我的 app/assets 目录中有 javascripts 和 stylesheets 目录,就像任何普通的 Rails 应用程序一样。

不过,我也希望有一个插件目录。

例子:

app/assets/plugins/myPlugin1/somefile.js
app/assets/plugins/myPlugin1/somefile.css

问题是,如果我使用

<%= javascript_include_tag 'plugins/myPlugin1/somefile.js' %>

我会得到一个 404 错误,因为

/assets/javascripts/plugins/myPlugin1/somefile.js

不存在。然后,我注意到“插件”目录试图在 javascripts 中被访问。我认为这与“javascript_include_tag”有关。

经过一番研究,我意识到我必须将此行包含在 config/application.rb 中

config.assets.paths << Rails.root.join("app", "assets")

而且它似乎奏效了。在 WEBRick 上,在开发上,它运行良好。


现在我已成功部署到服务器,预编译了资产,并认为我已经准备好了。

目录

/public/assets/

已创建。 “app/assets/javascripts”、“app/assets/stylesheets”和“app/assets/plugins”中的所有内容都被预编译为public/assets

工作原理

app/assets/javascripts/login.js

能够在具有

的视图中访问
<%= javascript_include_tag 'login.js' %>

什么不起作用

属于“插件”的文件。

app/assets/plugins/myPlugin1/somefile.js

被预编译为

public/assets/myPlugin1/somefile.js

但是当我跑的时候

<%= javascript_include_tag 'plugins/myPlugin1/somefile.js' %>

它试图访问

/javascripts/plugins/myPlugin1/somefile.js

根据我的开发经验,正确的路径是:

/myPlugin1/somefile-(some hex hash).js

因此,如您所见,在生产中我遇到了与未添加时相同的问题

config.assets.paths << Rails.root.join("app", "assets")

到 application.rb

可能是什么问题?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 rails-assets


    【解决方案1】:

    你可以这样:

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

    或者设置每个插件,一个一个的像:

    config.assets.paths << Rails.root.join("app", "assets", "plugins", "myPlugin")
    

    但是,如果您在该 myPlugin 目录上有子目录,则不会加载每个文件。所以第一个选项可能更适合你。

    【讨论】:

    • Dir.glob("#{Rails.root}/app/assets/dashboard**/").each do |path| 尝试过此操作,但无法在控制台中使用Rails.application.config.assets.paths 看到文件夹资产
    • 你是否在这两个 * 之前缺少一个 '/' 或者两个 * 应该在最后一个斜杠之后
    • 不,我试过Dir.glob("#{Rails.root}/app/assets/dashboard/**/").each do |path| 以及Dir.glob("#{Rails.root}/app/assets/**/*/").each do |path| 和其他一些组合
    • 这很奇怪,它对我有用。尝试调试,重新启动,检查拼写什么的,我帮不了你更多
    猜你喜欢
    • 1970-01-01
    • 2018-06-10
    • 2020-09-09
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 2013-09-12
    • 2022-09-28
    相关资源
    最近更新 更多