Extjs 4与Rails 3.1集成资产管道问题

问题描述

| 一个典型的extjs示例应用程序通过引用以下文件包括extjs库: ext-all.css ext-all.js 包含这些文件的“ rails 3.1方式”是什么,并指出它们引用了数百个文件?子目录中的文件数 (例如ext-4.0.2 / resources / themes / stylesheets / ext4 / default / _all.scss) 并且有相对路径: (例如background-image:url(\'../../ resources / themes / images / default / shared / shadow.png \')) 我尝试了require_tree等的多种组合,但似乎无法使其正常工作。 我想知道是否需要弄乱“提供”,但似乎找不到所需的文档。     

解决方法

        您想要的是通过Rails资产管道来编译该文件:
resources/themes/templates/resources/sass/my-ext-theme.scss
为了使它起作用,我以辛苦的方式学到了一些东西: ExtJS使用SASS进行编译(Rails也是如此)和Compass,其中包括蓝图和罗盘CSS套件。指南针不适用于rails,您需要使用gem“ compass-rails \”,它不包含CSS工具包。只有主要的指南针gem才具有这些工具包,并且它是指南针导轨的依赖项,因此,如果捆绑了指南针导轨,则应该获取它们,它们必须位于sass.load_paths配置中。如果您包含不带罗盘导轨的\“ compass \”宝石,您将遇到奇怪的错误,并在尝试解决这些问题时成为Rails资产管道的专家! ExtJS使用旧版本的SASS,而Rails使用的新版本不喜欢在模块内部定义函数和混合。要解决此问题,请查看错误提示(总是提供函数或混合定义),然后将其移至_functions或_mixins文件中。 (更多信息:升级到sass-3.1.8后出现错误) 这是启动和运行的方法: 将其放入您的config / application.rb中:
# Set up our ExtJS SASS build environment
config.sass.load_paths << \"#{Rails.root}/vendor/assets/stylesheets\"
config.sass.load_paths << \"#{Rails.root}/vendor/assets/frameworks/compass/stylesheets\"
config.sass.load_paths << \"#{Rails.root}/vendor/assets/frameworks/blueprint/stylesheets\"
将ExtJS样式表(SDK中的ext4 / default目录)放在此处:
vendor/assets/stylesheets/ext4/default/
将my-ext-theme.scss放入app / assets / stylesheets中,并像通常使用rails一样使用它。它将调用此代码:
@import \'ext4/default/all\';
这将带入所有ExtJS定义,您应该随便走。     ,        杰夫!在这里看看我的答案,我认为您的问题是相同的。