繁体   English   中英

Rails资产管道仅返回错误404

[英]Rails asset pipeline only returns error 404

对不起这个问题,因为我是一个红宝石和铁轨新手。 如何使资产管道正常运行?

在我的开发环境中,我有这些单独的javascript文件,它们通常会在site / app / views / stats / index.html.erb中加载:

<%= javascript_include_tag "/assets/jquery.js" %>
<%= javascript_include_tag "/assets/stats/donut.js" %>
<%= javascript_include_tag "/assets/stats/vbars.js" %>
<%= javascript_include_tag "/assets/stats/progress.js" %>
<%= javascript_include_tag "/assets/stats/gauge.js" %>
<%= javascript_include_tag "/assets/stats/hbars.js" %>
<%= javascript_include_tag "/assets/stats/widget_grid.js" %>
<%= javascript_include_tag "/assets/stats/widget.js" %>

在生产环境中,它不起作用。 因此,我正在尝试让开发人员环境使用资产管道。 这是到目前为止我得到的:

site / config / enviroment / development.rb中,我配置了

config.assets.debug = false
config.assets.compile = false
config.assets.digest = true

然后停止我的Rails服务器并运行

bundle exec rake assets:precompile

并重启了rails服务器。

然后在site / app / views / stats / index.html.erb中,我只是将javascript include替换为

<%= javascript_include_tag "stats" %>

并创建了一个包含以下内容的site / app / assets / javascripts / stats.js文件

//= require stats/donut
//= require stats/vbars
//= require stats/progress
//= require stats/gauge
//= require stats/hbars
//= require stats/widget_grid
//= require stats/widget

我究竟做错了什么? 任何帮助表示赞赏。


更新:发生问题是因为我忘记在stats.js中包含第三方库。 最初包含在site / app / views / stats / index.html.erb中

<%= javascript_include_tag "/assets/third-party/d3.min.js" %>

只需删除该包含并将其添加到stats.js

//= require third-party/d3.min.js

感谢大家的帮助!

您必须告诉Rails预编译该文件。 默认情况下,它与application.js一起application.js但是如果您创建一个新的清单文件,则必须包含它。 config/initializers/assets.rbproduction.rb添加:

Rails.application.config.assets.precompile << ['stats.js']

希望能帮助到你。

这篇文章对理解资产管道的工作原理很有帮助: http : //www.reinteractive.net/posts/116-12-tips-for-the-rails-asset-pipeline

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM