相关疑难解决方法(0)

如何避免在开发模式下提供预编译资产?

不想在开发模式下连接JavaScript文件,而是将它们作为单独的文件提供.所以我配置了:

development.rb:

config.assets.compress = false
config.assets.debug = true
config.assets.compile = true
Run Code Online (Sandbox Code Playgroud)

在我的/ app/assets/javascript目录中,我有:

  • reviews.js
  • 评论/
    • foo.js
    • bar.js

reviews.js:

//= require jquery
//= require jquery_ujs
//= require_tree ./reviews
Run Code Online (Sandbox Code Playgroud)

<%= javascript_include_tag "reviews" %>在我的布局中包含了JavaScript .生成的页面正确地单独引用三个脚本,reviews.js并且基本上是空的.到现在为止还挺好.

现在,当我使用rake assets:precompile三个JavaScript文件连接到预生成我的资产进行生产时reviews.js.这是一切优秀的生产,但现在,在开发模式,级联reviews.js供应除了两个单独的文件.

当然,这会在开发时导致各种令人讨厌的错误,因为现在,内容foo.jsbar.js服务两次,其中一个可能是旧的版本reviews.js.

如何确保Rails在开发模式下不使用预编译资产?

ruby-on-rails ruby-on-rails-3.1 asset-pipeline

54
推荐指数
3
解决办法
3万
查看次数

Rails 3.1远程请求提交两次

我开发了一个Rails 3.1应用程序,它由100%的Ajax CRUD表单组成,用于输入用户和客户.我创建了两个独立的模型,控制器,视图等.每个模型的视图包含用于创建编辑更新和销毁的jquery文件.问题是当我执行任何执行远程操作的操作时,它被调用两次.我可以在firebug的控制台视图中确认这种情况以及WEBrick输出中的输出.任何人都可以帮助追踪这里发生的事情吗?什么会导致rails处理每次调用两次?

jquery crud ruby-on-rails-3.1 asset-pipeline

13
推荐指数
2
解决办法
7090
查看次数

为什么Rails在我的iPhone上以开发模式缓存资产?

根据Ruby on Rails指南:缓存,在开发和测试环境中默认情况下禁用缓存。如果我做了一点CSS更改,请在运行rails server并访问我的网站localhost:3000,我可以看到我的更改。但是,如果我在iPhone上访问我的Rails服务器10.0.1.2:3000,则CSS不会更新,即使是隐身模式下的Chrome也不会更新。当我尝试使用其他具有空缓存的iPhone时,更改就在那里。

我发现一个堆栈溢出帖子描述了同样的问题。以下是建议的解决方案:

  • 删除public/assets目录。我没有。
  • 添加config.serve_static_assets = falseenvironments/development.rb。它已经在那里。
  • 删除/tmp/cache/assets,添加config.serve_static_assets = falseenvironments/development.rb服务器并重新启动。我试过了,但是没有用。

这是我的相关environments/development.rb配置:

# In the development environment your application's code is reloaded on
# every request. This slows down response time but is perfect for development
# since you don't have to restart the web server when you make code changes.
config.cache_classes = false

# …
Run Code Online (Sandbox Code Playgroud)

iphone ruby-on-rails

2
推荐指数
1
解决办法
1628
查看次数