【问题标题】:Angular changes not reflected when using asset pipeline使用资产管道时未反映角度更改
【发布时间】:2014-02-10 13:08:47
【问题描述】:

我有一个 Rails / Angular 应用程序,我发现当我更新 Angular 代码时,它并没有立即反映在(开发)应用程序中。我习惯了 Rails reload to review 循环,并且必须重新启动 Rails 应用程序并在反映 Angular 更改之前登录和退出应用程序。

我认为这是资产管道的问题,因为我正在使用它来交付 Angular 资产。我在 SO 上四处寻找解决方案,发现了一些类似的问题,但没有真正的解决方案。

有谁知道如何强制资产管道缩小并将更改提供给 Angular js,而无需重新加载服务器?更复杂的是,大部分 js 都是用 coffeescript 编写的。

【问题讨论】:

  • 您可以尝试重置资产的时间戳吗?它可能会重新加载资产
  • 你是指触摸命令吗?源文件的时间戳将在保存时更新...不确定已编译的资产。
  • 资产管道不应该是您在开发模式下工作的问题
  • 感谢@GhostRider 你是对的。那么是什么进程将使用 coffeescript 编写的 Angular 代码,编译和缩小并将其发送到浏览器呢?

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


【解决方案1】:

如果您手动预编译资产,rake assets:precompile 那么您可以避免重新启动。当您在 apache 或 nginx 中重新加载服务器时,将不会编译资产。您需要重新启动它,以便在向服务器发出请求时,将编译资产。当您对任何 js、css 文件进行更改时,请确保您手动编译它们。

【讨论】:

  • 请注意:这种方法意味着我不必重新启动 Rails 服务器,但我仍然需要登录/退出应用程序。
【解决方案2】:

可能的原因

由于您最近运行了rake assets:precompile 命令,该脚本创建了一个文件夹public/assets 并生成了浏览器可能要求的所有资产文件。因此,当您对 js/CSS 资产文件进行新更改时,来自浏览器的请求将从 public/assets 目录提供。

解决方案

  1. rm -df public/assets
  2. rake assets:clean

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-17
    • 1970-01-01
    • 2016-02-29
    • 1970-01-01
    相关资源
    最近更新 更多