标签: asset-pipeline

解决 Rails 资产管道中依赖顺序的最佳方法?

我有一个 RoR 应用程序,它使用大量单独的 .less 文件来构建我的样式。我有一个主 .less 文件 (config.less),其中包含其他文件使用的变量。我可以手动浏览每个子文件并添加@import语句,但我有很多子文件,这似乎不是最好的方法。如果我使用的话,是否有设置特定顺序的标准方法*= require_tree .

我尝试将上面的 require 包含require_tree在内

...
*= require 'less/config'
*= require_tree .
Run Code Online (Sandbox Code Playgroud)

但我仍然在后续的 .less 文件中收到错误,抱怨它找不到值config

variable @base is undefined
  (in /Users/me/project/app/assets/stylesheets/less/mixins.less)
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails asset-pipeline

5
推荐指数
1
解决办法
2444
查看次数

尝试在 AWS Elastic Beanstalk 上预编译资产

2013-11-03 20:30:48,342 [INFO] (30173 MainThread) [directoryHooksExecutor.py-29] [root directoryHooksExecutor info] Output from script: /usr/bin/ruby1.9 /usr/bin/rake assets:precompile:all RAILS_ENV=production RAILS_GROUPS=assets
rake aborted!
Command failed with status (): [/usr/bin/ruby1.9 /usr/bin/rake assets:prec...]

Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Rake task failed to run, skipping asset compilation.
Run Code Online (Sandbox Code Playgroud)

如何在 AWS Elastic Beanstalk 上预编译资产?

我收到以下错误

amazon-web-services ruby-on-rails-3 asset-pipeline amazon-elastic-beanstalk

5
推荐指数
1
解决办法
3061
查看次数

为什么 Rails 4 中静态内容使用摘要而不是 ETag

我认为 HTTP 的 ETag 正是使过时的缓存内容失效的机制。出于同样的目的,也可以使用摘要。为什么它们更好,为什么 etag 还不够?

etag ruby-on-rails http asset-pipeline

5
推荐指数
1
解决办法
305
查看次数

Rails 4 生产环境中的资产出现 404 not found 错误

我是java环境中的rails新手。我对轨道 3 到轨道 4 的资产管道几乎没有什么困惑。

目前我在 Rails 4.2.5 中,我在本地环境中创建了一个示例应用程序。我从 app/assets/javascripts 内部创建了一个新的 js 并从视图中引用它,一切似乎在我的本地环境中运行良好。

之后我想用生产环境测试它是如何工作的。这是我所做的步骤。

  1. RAILS_ENV=生产 rake 资产:清理资产:预编译 [创建的所有文件 public/assets]
  2. 以生产模式启动服务器rails server -e production
  3. 现在,当我浏览页面时,我 "NetworkError: 404 Not Found - http://localhost:3000/assets/application-c5c431cb7c0a202f831a634922aaf1d536712002ae74334fb03ba4698b32b84c.js"在 firebug 中收到此错误。

当搜索到几个线程时,他们建议添加config.assets.compile = true。但我不认为这就是解决方案,因为它会减慢应用程序的速度。

请帮忙。

ruby-on-rails asset-pipeline ruby-on-rails-4.1

5
推荐指数
1
解决办法
4479
查看次数

Rails 5 资源未在生产中加载

我最近在我的 Rails 应用程序中更新了一些包,现在我的资产没有被提供。相反,我收到以下错误:

Failed to load resource: the server responded with a status of 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)

我的资产是预编译的:

资产.rb

# Be sure to restart your server when you modify this file.

# Version of your assets, change this if you want to expire all your assets.
Rails.application.config.assets.version = '1.0'

# Add additional assets to the asset load path
# Rails.application.config.assets.paths << Emoji.images_path

# Precompile additional assets.
# application.js, application.css, and all non-JS/CSS in app/assets folder are already added.
# Rails.application.config.assets.precompile …
Run Code Online (Sandbox Code Playgroud)

ruby assets ruby-on-rails asset-pipeline ruby-on-rails-5

5
推荐指数
1
解决办法
9598
查看次数

如何在 rails 5 中设置资产管道以使用自定义字体?

我必须在 rails 5 应用程序中使用自定义字体Jameel Noori Nastaleeq。我以前从未在 Rails 中使用过资产管道。以下是我采取的一些步骤:

  1. 在 中创建fonts文件夹app/assets,并将提取的ttf字体文件放入其中
  2. 添加config.assets.paths << Rails.root.join("app", "assets", "fonts")config/application.rb
  3. 添加以下内容app/assets/stylesheets/couplets.scss

    @font-face {
    font-family: 'Jameel Noori Nastaleeq';
    src:asset-url('JameelNooriNastaleeq.ttf') 格式("truetype");
    }
    虽然没有错误/警告,上述步骤没有任何效果。我是不是错过了什么。

我已经看到类似的问题Custom Font not working in Rails Asset Pipeline Integrating @font-face files into rails asset pipeline, 但他们的回答没有帮助。

我的github repo 中的完整代码

css fonts asset-pipeline ruby-on-rails-5

5
推荐指数
1
解决办法
1797
查看次数

导轨。第一个请求太慢,超时,下一个更快

我正在开发一个 Rails 应用程序。在 Heroku 上顺利推送 git 后,该应用程序在网络浏览器中显示错误“请求超时”。

如果我在 1 分钟后重新尝试,该应用程序会在网络浏览器上非常快速地显示该页面。

配置

在我的配置下面找到

  • 导轨 5.1.2

  • psql (PostgreSQL) 9.6.1

gem文件中的主要信息:

ruby '2.2.6'

gem 'rails', '~> 5.1.1'

gem 'pg', '~> 0.18'

gem 'puma', '~> 3.7'
Run Code Online (Sandbox Code Playgroud)

赫鲁库

Standard-2X dynos, Shared, 1 GB RAM

Heroku Postgres :: Brown

Memcached Cloud :free

Papertrail :free

STANDARD PLAN
Run Code Online (Sandbox Code Playgroud)

日志

第一个很长的请求的日志(注意我在测试前重新启动服务器以重现每天早上在第一个请求时附加的问题)

Aug 25 03:28:15 myapplication app/web.1:  => Booting Puma 
Aug 25 03:28:15 myapplication app/web.1:  => Rails 5.1.2 application starting in production on http://0.0.0.0:41080 
Aug 25 03:28:15 myapplication app/web.1:  => …
Run Code Online (Sandbox Code Playgroud)

ruby caching heroku asset-pipeline ruby-on-rails-5

5
推荐指数
0
解决办法
1466
查看次数

如何告诉 rails 不要在我的应用程序中预编译/缓存 .js.erb 文件?

我的 app/assets/javascripts/channels 文件夹中有一个 messages.js.erb 文件,它应该生成代码以从数据库中获取每个聊天室并为该聊天室创建频道订阅。

这是我的 messages.js.erb 文件

//**app/assets/javascripts/channels/messages.js.erb**

$(document).on('turbolinks:load', function() {
  submitNewMessage();
});

<% Chatroom.all.each do |chatroom| %>
  App['room' + <%=chatroom.id%>] = App.cable.subscriptions.create({channel: 'MessagesChannel', room: <%=chatroom.id%>}, {
  received: function(data) {
   $("[data-chatroom='" + this.chatroomId + "']").removeClass('hidden');
    return $("[data-chatroom='" + this.chatroomId + "']").append(data.message);
  },

  setChatroomId: function(chatroomId) {
    this.chatroomId = chatroomId;
  }
});

<% end %>

function submitNewMessage(){
  //console.log(uid);
  $('textarea#message_content').keydown(function(event) {
    if (event.keyCode === 13) {
        var msg = event.target.value;
        var chatroomId = $("[data-chatroom]").data().chatroom;
        var uid = $('#uid').val();
        //console.log(uid);
        App['room' + chatroomId].setChatroomId(chatroomId); …
Run Code Online (Sandbox Code Playgroud)

javascript ruby-on-rails precompile asset-pipeline actioncable

5
推荐指数
1
解决办法
645
查看次数

Ruby on Rails 4.2 资产管道不会缩小/压缩 application-fingerprinted.js JS 文件

我有一个 ruby​​ on Rails 4.2 应用程序,并且我的资产管道在长达 2 天的时间里都面临着“令人毛骨悚然”的问题。我的产品托管在 Heroku 上,我在这里直接提到这一点,因为我认为这可能是相关的,我有他们 gem 'rails_12factor', group::production

我阅读并尝试了许多关于 Rails 资产没有编译的(太多)SO 问题的建议,但没有一个工作,因为我将进一步描述。

观察到的问题导致我提出这个 SO 问题是我的 javascript application.js 文件在生产中没有被缩小

我怎么知道?空格仍然在这里,注释还没有被删除,applciation.js,与我的 application.css 相反,只是所有 js 文件的串联,但没有压缩/缩小已经完成。

关于 SO 的大多数问题都涉及图像、css 或 js 都没有被缩小/预编译的问题,但我的情况很特殊,因为图像、css 是预编译/缩小的,但只有 js 是一个问题并且没有被缩小

我的js有问题吗?(请参阅下面的一些实验,我试图找出错误的原因)似乎不是

我在下面的设置将向您展示我如何处理资产(在我初学者理解的范围内):我使用守卫不断监视任何更改并预编译内容并将生成的/生成的 application-tr56d7.css(指纹)和 application- 45dsugdsy67.js((指纹)在 public/assets 中,然后当我在 git 上部署时,它会推送所有更改,包括预编译/缩小的文件,然后当我推送到 Heroku 时,我的生产资产设置告诉 Rails 部署我已经预编译的资产。我是一个初学者,很难理解所有众多的开发/生产环境资产设置,但我认为这就是您将在下面找到的代码中定义的内容。

我知道所有这些过程都在工作,因为每次我更改文件时,我都能找到一个新的 application-tr56d7.css 和一个新的 application-45dsugdsy67.js(当然是示例)(以及一个新的 css.gz 和 .js.z这必须是二进制的东西)

例如,每次我更改一个 js 文件时,守卫都会执行他的工作,我可以阅读如下内容:

I, [2018-02-09T09:53:41.140165 #130534]  INFO -- : Writing /home/mathieu/rails_projects/my_app/public/assets/application-af0ab4a348e4f5545c844cfac02a0670.js
Run Code Online (Sandbox Code Playgroud)

然后可以在 public/assets 文件夹中找到新生成的 application.css 和 application.js 文件:例如

/public/assets/application-1021e7d2ea120fe40c67ec288f1c6525.js …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails heroku asset-pipeline ruby-on-rails-4

5
推荐指数
1
解决办法
1008
查看次数

从 rails 5.1.7 中的资产管道迁移后,无法使用 webpacker 使 javascript 正常工作

尝试编译时,所有图像都出现以下错误:

rails assets:precompile
Run Code Online (Sandbox Code Playgroud)
ModuleNotFoundError: Module not found: Error: Can't resolve 'core-js/modules/es.symbol' in '/***/app/javascript/packs'




            Field 'browser' doesn't contain a valid alias configuration
              /*/app/javascript/core-js/modules/es.symbol.scss doesn't exist
            .css
              Field 'browser' doesn't contain a valid alias configuration
              /*/app/javascript/core-js/modules/es.symbol.css doesn't exist
            .module.sass
              Field 'browser' doesn't contain a valid alias configuration
              /*/app/javascript/core-js/modules/es.symbol.module.sass doesn't exist
            .module.scss
              Field 'browser' doesn't contain a valid alias configuration
              /*/app/javascript/core-js/modules/es.symbol.module.scss doesn't exist
            .module.css
              Field 'browser' doesn't contain a valid alias configuration
              /*/app/javascript/core-js/modules/es.symbol.module.css doesn't exist
            .png
              Field 'browser' doesn't contain a valid alias …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails asset-pipeline webpack ruby-on-rails-5 webpacker

5
推荐指数
1
解决办法
737
查看次数