问题描述
|
一个典型的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定义,您应该随便走。
, 杰夫!在这里看看我的答案,我认为您的问题是相同的。