rails - 即使在app.js中注释,资产仍然可以提供服务

时间:2016-02-28 13:13:00

标签: ruby-on-rails reactjs react-bootstrap

我正在尝试使用react-bootstrap,但我正在努力应对以下错误:

  

未捕获的不变违规:addComponentAsRefTo(...):只有ReactOwner可以有refs。您可能正在为未在组件的render方法中创建的组件添加引用,或者您有多个React已加载的副本

我读到它与 反应被多次引用 的事实有关,我试图弄清楚为什么以及我在哪里这样做错误。

所以,为了解决这个问题,我尝试取消注释application.js 中的一些行,可能存在问题(我认为某些行已导入内部反应 - 但我认为范围只是那个文件所以无论如何都不重要。

这是我的application.js

//#= require jquery
//#= require bootstrap-sprockets
//#= require underscore
//#= require backbone
//#= require backbone_rails_sync
//#= require backbone_datalink
//#= require react
//#= require react_ujs
//#= require react_bootstrap
//= require utils
//= require components

components.js

//#= require underscore
//#= require backbone
//#= require react-server
//= require components/admin/general
//#= require components/admin/settings

最初他们都没有注释,但现在我评论了一些。我跑了

rake assets:clean
rake assets:precompile

一次和第二次只有佣金资产:干净但Rails仍在提供旧资产。为什么呢?

我在development.rb

中更改了以下内容
config.assets.digest = false
config.assets.debug = true

当我启动rails服务器并导航到某个路径时,在我的控制台内,它引用了我不想要的所有脚本..

在下面的 application.js 中,回应是注释的,因此任何引用组件内的React的代码应该不能工作,但是它工作

如何告诉Rails 重置application.js 中提到的资产?

1 个答案:

答案 0 :(得分:0)

Well..nevermind

我发现注释是通过删除等号来完成的,而不是添加#