application.js не скомпилирован - PullRequest
0 голосов
/ 12 декабря 2011

Я не уверен, почему, но всякий раз, когда я запускаю rake assets:precompile, application.js не компилируется.Я получаю ошибку «application.js not precompiled» в производственном режиме.

Вот мой Gemfile, если он что-то значит:

source 'http://rubygems.org'

gem 'rails', '3.1.1'
gem 'eventmachine', '1.0.0.beta.4.1'
gem 'thin'
gem 'mysql'
gem 'win32-open3-19'
gem 'paperclip', '2.3.8'
#gem 'jammit'
gem 'jsmin'
gem 'will_paginate'

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


# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '~> 3.1.4'
  gem 'coffee-rails', '~> 3.1.1'
  gem 'uglifier', '>= 1.0.3'
end

gem 'jquery-rails'

# To use ActiveModel has_secure_password
# gem 'bcrypt-ruby', '~> 3.0.0'

# Use unicorn as the web server
# gem 'unicorn'

# Deploy with Capistrano
# gem 'capistrano'

# To use debugger
# gem 'ruby-debug19', :require => 'ruby-debug'

group :test do
  # Pretty printed test output
  gem 'turn', :require => false
end

Я сделал новое приложение rails и протестировалrake assets: прекомпилируй и всё работает.Единственное различие между этими двумя приложениями с точки зрения соответствующих файлов состоит в том, какие драгоценности я установил."application.js" одинаково для обоих приложений ... как и файлы environment.rb.

Также следует отметить ... когда я включаю случайный файл .js в свой каталог assets / javascripts и использую"javascript_include_tag: application", один из результирующих URL-адресов в режиме разработки выглядит следующим образом: /assets/../javascripts/anytimec.js?body=1 и они явно не работают с 404. Однако файл application.js указан правильно.

ОБНОВЛЕНИЕ:

Глядя на то, что генерирует Sprockets, я заметил, что «логический путь» использует «../javascripts» в расположении.Я проверил это, посмотрев дамп asset_paths.asset_for ('application', 'js') и asset_paths.asset_for ('anytimec', 'js') соответственно.Я также сравнил эти дампы с теми же файлами из свежего приложения.Свежее приложение НЕ добавляет к местоположению "../javascripts", тогда как мое текущее приложение ДЕЛАЕТ.Это не делает это с файлами CSS или чем-то еще ... просто javascript.Это наиболее определенно намекает на основную проблему, но я не знаю, куда идти дальше.

1 Ответ

1 голос
/ 17 декабря 2011

Обнаружив, что это связано с ошибкой Sprockets при чтении папки, специально названной "java", в папке assets, я переименовал ее в "applets", и она начала работать.

См. thisсообщение для ответа.

...