标签: asset-pipeline

Uglifier - NoMethodError:未定义的方法“start_with?” 对于 nil:NilClass

我在生产中预编译资产时遇到了NoMethodError: undefined method start_with?' for nil:NilClass错误。

这似乎是一个问题uglifier,我正在使用以下宝石:

导轨 (5.2.2)

丑化者 (4.1.9)

链轮-导轨 (3.2.1)

therubyracer (0.12.3)

日志跟踪:

** Invoke assets:precompile (first_time)
** Invoke assets:environment (first_time)
** Execute assets:environment
** Invoke environment (first_time)
** Execute environment
** Invoke yarn:install (first_time)
** Execute yarn:install
yarn install v1.13.0
[1/4] Resolving packages...
success Already up-to-date.
Done in 0.36s.
** Execute assets:precompile
rake aborted!
NoMethodError: undefined method `start_with?' for nil:NilClass
/usr/lib64/ruby/gems/2.4.0/gems/uglifier-4.1.9/lib/uglifier.rb:225:in `error_message'
/usr/lib64/ruby/gems/2.4.0/gems/uglifier-4.1.9/lib/uglifier.rb:234:in `parse_result'
/usr/lib64/ruby/gems/2.4.0/gems/uglifier-4.1.9/lib/uglifier.rb:216:in `run_uglifyjs'
/usr/lib64/ruby/gems/2.4.0/gems/uglifier-4.1.9/lib/uglifier.rb:168:in `compile'
/usr/lib64/ruby/gems/2.4.0/gems/sprockets-3.7.1/lib/sprockets/compressing.rb:65:in `block in js_compressor=' …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails asset-pipeline uglifier

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

Rails 7/StimulusJS 相对导入:适用于开发,但不适用于生产

几年后我再次使用 Rails(最后一次使用 Rails 4)。我有多个刺激控制器引用一个名为metric_defaults.js. 该文件仅包含一组平面定义,例如:

Chart.defaults.elements.line.tension = 0.25;
Chart.defaults.elements.line.borderWidth = 5;
Run Code Online (Sandbox Code Playgroud)

在 Rails 7 开发环境中,此导入可以很好地与import '../metric_defaults.js'每个刺激控制器配合使用,但在生产中我得到:

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

我花了一天的时间试图找出这个问题,但所有努力都失败了。一些花絮:

  • 我正在使用标准的 Rails 7 配置(导入映射、链轮)
  • 我已经确认生产服务器正在正确预编译资产。这包括 metric_defaults.js,但是它的名称中有一个指纹(metric_defaults-9032be9e....js),而 404 似乎正在尝试访问未指纹的文件?
  • 生产服务器是一个 Heroku 实例
  • metric_defaults.js 文件的路径是 app/javascript/metric_defaults.js
  • 刺激控制器位于 app/javascript/controllers/ 中
  • 如前所述,在开发中运行良好
  • 我不知所措

任何想法表示赞赏

ruby-on-rails asset-pipeline stimulusjs

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

Heroku Cedar堆栈和Rails 3.1 RC5不显示图像?

有人在Heroku,Cedar堆栈上运行Rails 3.1 RC5吗?到目前为止,一切似乎都有效,除了没有显示资产图像(例如徽标,图标,main_bg等).

我不确定它是否与此问题有关.

想听听任何能解决这个问题的人的意见.

assets heroku ruby-on-rails-3 asset-pipeline

4
推荐指数
1
解决办法
1034
查看次数

资产路径中缺少指纹

我们刚刚使用新的资产管道部署了一个Rails 3.1应用程序.在开发中,一切看起来都很好,但在生产中,所有资产图像都缺失了.在部署时,我们遵循Ruby on Rails边缘指南.例如,我们的应用程序中的一个简单代码段:

asset_path "favicon.png", "images"
Run Code Online (Sandbox Code Playgroud)

这在生产中产生:

/assets/favicon.png
Run Code Online (Sandbox Code Playgroud)

但指纹缺失(因此它是生产的死链接).我们已经在没有"图像"的情况下尝试了它image_tag.什么都行不通.

附加信息:

  • Rails版本3.1.0

已经看过并尝试过:

ruby-on-rails-3.1 asset-pipeline

4
推荐指数
1
解决办法
740
查看次数

资产管道未在本地服务器上编译

我刚刚升级到Rails 3.1,我遇到了Asset Pipeline的问题.基本上,当我在做本地开发时,我对我的任何.css.scss文件进行了更改,我必须运行:

rake assets:precompile
Run Code Online (Sandbox Code Playgroud)

在命令行上,然后在我看到任何样式更改之前刷新浏览器.如何在每次重新加载开发页面时自动进行预编译?

提前致谢!

ruby-on-rails ruby-on-rails-3.1 asset-pipeline

4
推荐指数
1
解决办法
4879
查看次数

Heroku不显示(查找?).css和.js文件

我最近向Heroku添加了一个项目.但是,.css文件或.js文件似乎都没有工作.

我正在使用Twitter的Bootstrap .css和.js文件.我已将文件添加到供应商/资产中的各自目录中.

基于我在这里问过的其他问题,我在Heroku上从Bamboo升级到了Cedar.我也试过rake assets:precompile RAILS_ENV=production,改config.assets.enabled = trueconfig.assets.enabled = false在application.rb中,config.assets.compile = false config.assets.compile = true在production.rb,以及有关的,我能想到的上面的东西尽可能多的组合.

一切都在当地很好.

(添加指向github的链接以尝试提供更多信息.) https://github.com/moctopus/sixtydays

ruby-on-rails heroku ruby-on-rails-3 asset-pipeline

4
推荐指数
1
解决办法
3197
查看次数

链轮/导轨:查找所有文件链轮知道如何编译

对于用于测试Rails应用程序的Rails引擎Konacha,我们需要一种方法来查找Sprockets可以编译为JavaScript的所有文件.

现在我们使用类似的东西

Dir['spec/javascripts/**/*_spec.*']
Run Code Online (Sandbox Code Playgroud)

但这种回升.bak,.orig以及其他备份文件.

Sprockets能否以某种方式告诉我们它是否知道如何编译文件,以便自动排除备份文件?

content_type_of 无济于事:

Rails.application.assets.content_type_of('test/javascripts/foo.js.bak')
=> "application/javascript"
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails sprockets asset-pipeline konacha

4
推荐指数
1
解决办法
4334
查看次数

Sprockets没有加载清单文件(jQuery,jQuery_ujs)

我有一个问题,让sprockets加载'application.js'文件的manifest部分中指定的文件.我已经尝试在'application.js'文件中重新排序指令,我尝试升级和降级ruby/rails,但没有任何东西导致sprockets加载指令中的文件.

我在"assets/javascripts"和"assets/stylesheets"文件夹中添加了一些其他文件,以查看sprockets是否会加载这些文件,但这些文件都没有加载.但是,如果进入控制台并键入"Sprockets.class",它会识别模块,因此似乎确实正在加载链轮.

我使用的是Ruby 2.0.0/Rails 3.2.8

这是我的Gemfile

source 'https://rubygems.org'

gem 'rails', '3.2.8'

# Bundle edge Rails instead:
# gem 'rails', :git => 'git://github.com/rails/rails.git'

gem 'sqlite3'

gem "rspec-rails", :group => [:test, :development]
group :test do
gem "factory_girl_rails"
gem "capybara"
gem "guard-rspec"
gem "debugger"
end

group :assets do
gem 'sass-rails',   '~> 3.2.3'
gem 'coffee-rails', '~> 3.2.1'
gem 'uglifier', '>= 1.0.3'
end

gem "jquery-rails"
Run Code Online (Sandbox Code Playgroud)

这是我的Gemfile.lock,其中包含与sprockets或jQuery相关的任何条目

specs:
actionpack (3.2.1)
  sprockets (~> 2.1.2

sprockets (2.1.3)

jquery-rails (3.0.4)

DEPENDENCIES
  jquery-rails
Run Code Online (Sandbox Code Playgroud)

编辑1 - Application.js

// This is a …
Run Code Online (Sandbox Code Playgroud)

ruby jquery ruby-on-rails sprockets asset-pipeline

4
推荐指数
1
解决办法
2275
查看次数

如何禁用heroku上的资产编译?

我正在尝试使用这个turtorial将我的rails应用程序部署到heroku:

https://devcenter.heroku.com/articles/getting-started-with-rails4

所以,我使用rails 4.1.1和ruby 2.1.1

我的Gemfile gem 'rails_12factor', group: :production里面有.

我的application.rb:


require File.expand_path('../boot', __FILE__)

require 'rails/all'

Bundler.require(*Rails.groups)

module Charticus
  class Application  Rails::Application
    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration should go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded.

    # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone.
    # Run "rake -D time" for a list of tasks for …
Run Code Online (Sandbox Code Playgroud)

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

4
推荐指数
2
解决办法
4226
查看次数

使用Grails Asset-Pipeline将JavaScript放在最下面

使用Grails资源插件,您可以使用gsp布局,如下所示:

<!DOCTYPE html>
<html>
<head>
    <g:layoutHead/>
    <r:layoutResources /> 
</head>
<body>
   <g:layoutBody/>


   <g:javascript library="jquery" plugin="jquery" /> 

   <r:layoutResources />

</body>
Run Code Online (Sandbox Code Playgroud)

使用r:layoutResources标记,您可以指定资源应包含在JQuery之后页面的底部,该位置位于布局gsp的底部。

有没有办法对Asset-pipeline插件做同样的事情?如何在JQuery包含之后将资源放在文档事件的底部?

javascript grails groovy asset-pipeline grails-2.0

4
推荐指数
1
解决办法
1952
查看次数