Jac*_* M. 4 ruby-on-rails sprockets ruby-on-rails-4
我试图让我的JavaScript(Angular应用程序)异步加载,以便页面可以在浏览器稍后下载JavaScript时呈现加载图像.在生产中,这很好,但不是在开发中,因为Sprockets还没有将所有文件连接起来.
我在我的HAML文件中使用以下内容:
= javascript_include_tag "mio", :async => true
Run Code Online (Sandbox Code Playgroud)
在生产中按预期工作:
<script async="async" src="/assets/mio.js"></script>
Run Code Online (Sandbox Code Playgroud)
但是,在开发过程中,文件都是独立的,并且不按顺序执行.例如,我的Angular Quote Form Controller在Angular完成加载之前正在执行:
<script async="async" src="/assets/angular.js?body=1"></script>
<script async="async" src="/assets/mio.js?body=1"></script>
<script async="async" src="/assets/mio-ng/controllers/quote_form.js?body=1"></script>
Run Code Online (Sandbox Code Playgroud)
所以问题是,在开发时可以javascript_include_tag忽略async标志,而不是在生产中吗?
我找到了一种方法来解决这个问题,但我觉得这不是最好的解决方案:
= javascript_include_tag "application", :async => Rails.env == "production"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1809 次 |
| 最近记录: |