问题标签 [rails-assets]
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.
sass - 如何组织 js、css 和 scss 文件以进行正确的导入和流水线操作?
最近我在资产文件夹中购买了一个带有资产的主题:-
现在,我需要在 Rails 资产管道中使用主题并组织为:-
1) 将所有 *.js 文件保留在上述 (1) 号中。在 /app/assets/javascripts 文件夹和 application.js 文件中,代码是:-
(Js 文件已导入,我认为没有错误,因为所有文件都在 javascripts 目录中)
2) 将所有 *.css 文件保存在上面第 2 点的 /app/assets/stylesheets 中。
3) 将上面第 3 点中的 assets/sass/main.scss 保存到 /app/assets/stylesheets。
4) 将上面第 4 点中的仪表板文件夹保存到 /app/assets/stylesheets 中,application.css 文件内容如下:-
我认为这应该可行,因为所有 css 都是由 require_tree 导入的。并且“main.scss”具有从仪表板目录导入的文件。但是我从“main.scss”文件导入的“_variables.scss”中定义的变量中得到“变量未找到 $font-weight-bold sass 错误”。我该如何解决这个问题以及资产组织应该是什么。
谢谢你们。
ruby-on-rails - Rails 资产间歇性超时 https://rails-assets.org
在为此以及在持续集成服务器上进行捆绑安装时间歇性地出错。
ruby-on-rails - Rails 5资产:预编译挂起
我正在使用 Ember 和ember-cli-rails
gem 运行 Rails 5。我在 Rails 资产文件夹中没有太多内容,因为我有一个单独的前端文件夹并ember-cli-rails
帮助我将 Ember 应用程序安装到 Rails 路由。
我部署到 AWS 实例,每当我运行时rake assets:precompile
,它都会挂起:
难道是我需要更新Ruby?大概不对吧?
无论如何,我在其他帖子中阅读了这篇文章,并且我认为这个问题更多的是个案问题,并且没有一个适合所有问题的解决方案。因此,我在这里介绍有关我的项目的信息,以期诊断问题。
我的宝石文件:
我有大量的 Ember 代码,这是我在运行后加载 Ember 应用程序时的输出rails s
:
所以它已经花费了一些时间,但似乎在我的 EC2 实例上,这一次呈指数增长。任何想法为什么?我应该只增加RAM吗?我觉得这不是理想的解决方案。
tl;博士:
ember-cli-rails
宝石有问题吗?- 我能做些什么来加快速度
assets:precompile
? - 提高我的 ec2 实例的能力是一种好习惯吗?
- 我能做些什么来调试这个(日志、更详细的输出等)?
ruby-on-rails - Rails 生产中缺少 Summernote 图标
我已经在我的 rails 应用程序中实现了 Summernote。开发中一切正常,Summernote 图标显示正确。但是,当我将其部署到生产环境时,这些图标不见了。我试过跑
和
但那些图标仍然不见了。即使我已经添加了这些
仍然没有运气。有人有这个问题吗?
css - 背景图像在生产中的 rails style.css 中不起作用
背景图像样式在本地工作正常,因为没有digest
语言环境,但在生产中,之后assets:precompile
,所有资产都添加指纹,并且在 Rails 4 中没有未消化的资产名称。因此,
不起作用。
有什么办法可以让背景图像在之后工作assets:precompile
?
ruby-on-rails - Heroku:Rails 5 应用程序的样式表和 Javascripts 未更新
多年来,人们遇到了很多问题。我已经尝试了多种答案,但我仍然无法在我的 Rails 5.1.6 应用程序中将更新的样式表和 javascript 加载到 Heroku 中。它适用于我的本地机器。
这是我的文件。
应用程序/资产/样式表/application.scss
应用程序/视图/布局/application.html.erb
配置/应用程序.rb
配置/环境/production.rb
这是我在本地机器上所做的。
我已经多次清除浏览器中的缓存,重新启动计算机并在不同设备上显示新应用程序。我在 heroku 日志中没有看到任何错误。我的 css 和 js 不工作。我还能在哪里解决这个问题?
ruby-on-rails-5 - HowTo:在编译之前将 postcss(autoprefixer) 应用于 rails 资产
问题标题试图描述性,但我觉得我必须进一步解释:
我的目标是在我的 rails 5.2 应用程序中使用 postcss(尤其是 postcss-preset-env 包括 autoprefixer)。我设法设置了 webpack 并获取了我的前缀,但是我特此解决了一个主要问题及其后代:
(1) 根据设计,webpack 将 (s)css 文件“包含”到 application.js 中,并为 css 添加前缀。但是,由于我喜欢将样式表留在 rails 的 assets 文件夹中,我想知道如何配置整个东西,以便例如 rails 编译资产,创建其 css 输出,并将其提供给 webpack,以便 webpack 可以添加前缀,创建 JS 变通方法等等。这是可能的,还是我必须将我所有的样式重构为 app/javascript/packs(而不是 app/assets/stylesheets 分别)?
(2) 试图解决这篇文章的第 (1) 部分,我通读了这个 codemancers 帖子。这篇文章侧重于使用 heroku 进行部署(这正是我最终想要做的),并且还解决了“编译顺序”问题。所以我应用了他的建议,希望它可以部分解决我的问题,或者至少让我对 webpack-rails 内部有更多的了解,因为这是一个最复杂的话题。它没有:样式表资产没有被 postcss 处理(我对此并不感到惊讶),现在 webpack 编译发生了两次(一次之前,一次在 rails assets:compile 之后)
由于我真的不知道什么代码可能是相关的,为了清楚起见,我不添加任何代码。请告诉我我将发布哪些文件,我很乐意这样做。
最后,因为这将是我可以接受的一种解决方法:如果无法做我想做的事情(或过于复杂):是否有一种干净的方法来引用 webpack 的 /app/javascript/packs/* 中的样式表资产.scss?至于 sprockets 指纹识别,我不能简单地提供要解析的文件的路径。
我希望我能够让自己清楚这个问题。随意编辑答案以获得更好的可读性/理解。
最好的。
ruby-on-rails - 如何明确声明资产的路线?
我有一个应用程序,其中的路线是:
这允许形式为www.example.com/your_username的路由
这非常有效,但是,它似乎会导致资产/图像 url 出现错误。
有没有办法明确定义(默认)资产/图像路线?(我想如果它们放在最后一行之前,那么它们应该可以正常工作)
javascript - 提供了“applications.js”清单中未提及的 Rails 5 资产?
请赐教!
假设我在 Rails 5 应用程序中有以下资产结构。
在application.js
清单中,我不需要//= file1
也不需要使用require_tree .
指令。
如果清单中不需要任何 JS 文件,application.js
则它也不会包含在Rails.application.config.assets.precompile += %w[]
- 是否将提供此资产?
- 如果某个视图中有标签
<%= javascript_include_tag 'file1' %>
,它应该工作还是引发错误?
ruby-on-rails - 在 ruby on rails app 中运行 bundle install 时无法验证 SSL 证书错误
我有一个 ruby on rails 应用程序,当我尝试运行捆绑安装时抛出错误。错误如下:
捆绑标准输出:无法验证https://rails-assets.org/的 SSL 证书您有可能遇到中间人攻击,但很可能您的系统没有所需的 CA 证书用于验证
我们的 SSL 证书在几天前刚刚更新,我们没有更改应用程序中的任何内容。它开始突然抛出这个错误。
我们是否需要更新系统中的根证书?我的意思是像运行 sudo update-ca-certificates 或类似的东西?这样做安全吗?
该应用程序位于 digitalOcean 中,我们使用 capistrano gem 来部署该应用程序
@lingYan 非常感谢您指引我正确的方向!我阅读了您发布的链接,但就我而言,我不得不稍微更改步骤,因为我不在 Centos-7 上。所以这正是我所做的:
在 /etc/ssl/certs 中备份了证书文件:
cp ca-certificates.crt ~/certificatesBackup/ca-certificates-backup.crt
在 /etc 中备份了配置文件:
cp ca-certificates.conf ~/certificatesBackup/ca-certificates-backup.conf
在 /etc/ssl/certs 中备份了过期证书:
cp DST_Root_CA_X3.pem ~/certificatesBackup/DST_Root_CA_X3_backup.pem
从 ca-certificates.conf 中删除了 DST_Root_CA_X3.pem:
我用 vim 打开文件并删除了该行
删除了 /etc/ssl/certs 中的过期证书:
sudo rm DST_Root_CA_X3.pem
更新的证书:
更新 CA 证书 -f -v
检查是否已从 ca-certificates.crt 中的链中删除过期证书:
diff ~/certificatesBackup/ca-certificates-backup.crt ca-certificates.crt
它显示了新证书
完成上述所有步骤后它仍然抛出错误,所以我意识到我没有 ISRG 根 CA 证书。为了添加 ISRG 根 CA,我执行了以下操作(我认为这是不正确的,或者我可能遗漏了一些东西):
- 转到此页面https://letsencrypt.org/certificates/并下载名为 ISRG Root X1 的文件(自签名/pem 格式)
- 去 /usr/local/share/ca-certificates/
- 创建了一个名为 isrgrootx1 的新文件夹
- 将我之前下载的pem文件复制到isrgrootx1文件夹中
- 确保权限正常(文件夹为 755,文件为 644)
- 使用 update-ca-certificates -f -v 更新证书
- 检查是否使用 diff 命令添加了证书:当我运行 diff 命令时,它没有显示任何更改,所以我猜证书没有添加并且错误仍然存在
我做错了吗?上述步骤是否正确添加新证书?我开始对此感到沮丧:(