问题标签 [sprockets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - 使用 Rails 3.1 的资产管道预编译 .scss 清单文件
Rails 3.1 的发布版本在预编译带有扩展名的 sass 清单文件时遇到了一些奇怪的问题scss
。奇怪的是默认清单文件application.scss
编译得很好,我在public/assets/
.
但是,当我尝试编译自定义清单文件时,没有创建任何内容。我在生产配置中启用了预编译选项。
据我所知,我正在正确运行预编译 rake 任务。
也许这会有所帮助。当我创建两个扩展名为css而不是scss的新清单文件并需要其中的原始 scss 文件时,这些新清单文件将得到尊重并正确编译。为什么application.scss
得到这种特殊处理而不是其他 sass 清单文件?
ruby-on-rails-3.1 - SASS,Rails 3.1:在供应商/资产中加载样式表
我正在使用 SASS 在 Rails 3.1(sass-rails 3.1) 应用程序中加载样式表。例如,使用 in 加载 sass partials app/assets/stylesheets
in -@import
application.sass
现在,我也想加载vendor/assets/stylesheets
. 请注意,我没有使用require vendor
,这@import pages/*
似乎是 sass 推荐的做法。这里的文件将是css
,而不是sass
或scss
。我不能使用@import ../../../vendor/assets/stylesheets/*
它,因为它仅适用于sass
和scss
文件。
有什么办法吗?
更新
我现在拥有的是这个。
application.css.scss
这包括上面提到的所有 sass 部分。require vendor
在_
vendor/assets/stylesheets/vendor.css
好像
这种方法的一个警告是 sass mixins(用户定义和插件)和公共变量并非在所有部分中都可用。我现在拥有的是_common_imports.sass
我@import
在所有部分中的第一件事。
common_imports.sass
导入common_imports
所有部分感觉非常重复。
jquery - 标记!和 Rails 3.1 不能很好地配合
我正在尝试进行标记!使用 rails 3.1,魔法发生在我的帖子控制器中,所以我将标记 javascript 扔到 assets/javascript 中并添加到我的 posts.js 中(所以只有帖子视图中的 textarea 会被附加)
在我的资产/样式表/posts.css
进一步我改变
所以它会得到好的asset_path图像路径
在 jquery.markitup.js 文件中,我将根路径更改为
所以它不会使用 markitup made 函数来检查根集并使用我的根
所以它会得到主js文件的正确路径我的_form.html.erb文件是
这确实有效,因为它确实显示了在 posts.css.erb 中设置的宽度:700px 的文本区域
但仍然没有其他显示或工作,我的文本区域上方没有用于文本编辑的小工具栏(B,I 等......)
提前谢谢你,HeTzi & Guy。
markItUp 文档:http ://markitup.jaysalvat.com/documentation/
ruby-on-rails - 在 SCSS 部分中使用 Rails 3.1 资产路径
我有以下设置:
在我的各种部分中,我在资产路径方面遇到了真正的问题。当内部application.css.scss
或清单加载的任何内容时,我可以使用:
但是,当我使用部分,例如我的_layout.css.scss
部分时,当我尝试相同的事情时,背景图像属性会从编译文件中简单地省略。似乎 SCSS 资产助手在部分内部不可用?
有没有人让这个工作,我错过了一些明显的东西吗?还是根本不可能在部分中使用资产助手?如果是这样,这是一个主要的、主要的问题,因为我的整个应用程序结构依赖于在部分之间共享的 SCSS 变量和混合。
我知道变量和 mixin 不会在 sprockets 清单中共享,所以如果部分无法访问资产帮助程序,那么我正在考虑将所有内容连接到单个 scss 文件中,这几乎违背了 Sass 和 Sprockets 的目的。
任何帮助将不胜感激!
ruby-on-rails-3.1 - Rails 3.1 资产和布局问题
我有一个 rails 3.1 应用程序,它按照标准做法在“/app/assets/stylesheets/application.css”中使用带有 css 的默认布局。这对于我的应用程序主要部分的资产流水线非常有用。
但是,当我生成使用 /app/views/layouts/showreports.html.erb 布局的报告时,我使用了不同的“报告”布局,如下所示:
我正在使用rake assets:clean; rake assets:precompile
预编译我的资产并检查清单文件 (/public/assets/manifest.yml) 中的内容是否正常,并且我没有看到对 showreports.css 或 showreports.js 的任何引用。
当我在开发模式下测试我的程序时,不出所料,它找不到这些文件。
我猜这是 rails 3.1 的基本 sprockets 问题,但我认为 sprockets 足够聪明,可以解析资产的所有布局文件(超出默认的 application.html.erb 文件)。
只是想知道这是否可能是一个错误,或者只是我对它应该如何工作的误解。
干杯,
格雷格
更新
经过更多的修补,我正在回答我自己的问题,因为这对我来说最有意义......
我做错的是使用名为“showreports.css”和“showreports.js”的文件作为清单文件。
我的解决方法是在它们各自的目录中创建/app/assets/stylesheets/showreports
然后/app/assets/javascripts/showreports
将我的 showreports.(css|js) 重命名为 application.(css|js)。
这样做之后,rake assets:precompile
很好地找到了它们并将它们正确添加到清单文件中。
javascript - 用于 JavaScript 的 Rails 3.1 资产管道
好的,我已经阅读了很多关于 Rails 3.1 的新资产管道的信息,但我找不到正确的答案来解决我的疑问。
我正在根据我正在渲染的 view#action 按需加载我的 .js 文件。我这样做是为了防止不正确的绑定并加载小的 .js 文件。
候选人机会#index
候选人公司#index
现在最好的解决方案是什么?
- 我应该更改我的绑定并让 Sprockets 使用 .js 编译我的所有 .js 文件
//= require_tree .
吗? - 或者我应该尝试 根据我的观点 加载我的.js ,这样我就不会得到一个巨大的application.js?
ruby-on-rails - Sprockets::CircularDependencyError in Store#index
我正在关注手册 Agile Web Development with Rails 4th edition,但我在 rails 3.1 中遇到了 sprocket css 的问题。
代码css是:
如果我修改 app/assets/stylesheets/aplication.css.scss 的 css 代码,我会发现下一个错误:
我不明白为什么如果我修改 aplication.css.scss 中的边距值或填充值,例如我会收到此错误。
非常感谢你。
ruby-on-rails-3.1 - Rails 3.1/Sprockets:将控制器变量(或助手)注入 javascript 资产
我有一个行动
我要做的就是将其注入为该页面调用的 javascript 中。例如:
我猜这不起作用,因为在访问控制器之前编译了咖啡脚本/erb...所以,如果我想在 3.1 中将控制器变量注入 JavaScript 文件(客户端 - 不通过 ajax 访问),我该怎么做呢?
ruby-on-rails-3 - rails 3.1 自定义 sprockets 预编译资产
我正在尝试自定义预编译的资产。在生产中,我只希望编译 application.js 和 applicaiton.css,而不是包含所有后续文件。
例如给出以下文件,我只希望在运行预编译 rake 任务时输出一个文件(appliation.css)
默认是预编译assets目录下的所有assets,比较乱。
编辑更正它是默认预编译资产目录中的所有非 js 和 css 文件。但是,如果您有一个像 form.elements.js sprockets 这样的文件,它将预编译它,认为它是一个非 js/css 文件。
ruby-on-rails - 如何根据 rails 3.1 中的通配符子域将资产搜索路径添加到 Sprockets?
Rails 资产管道指南指导您使用config.assets.paths
,但此时config/application.rb
我无权访问请求的子域。
我希望能够根据请求的子域预先添加一个额外的路径(仅适用于当前请求)。
我的应用程序特定详细信息
这是一个基本的 CMS 应用程序。根domain.com
主机使用标准控制器/视图呈现和默认资产路径处理管理部分。
请求subdomain.domain.com
基于subdomain
. prepend_view_path
它只为当前请求调用before_filter
并添加 。Rails.root.join('vendor/sites/[subdomain]/templates')
我希望能够Rails.root.join('vendor/sites/[subdomain]/assets')
在请求主机为[subdomain].domain.com
.
编辑
我最终只是加入了一个 mixin,因为Sprockets::Environment
它覆盖了call方法: