Как исправить «Sprockets :: FileNotFound: не удалось найти файл« turbolinks »с типом« application / javascript »» - PullRequest
0 голосов
/ 27 января 2019

Я не могу отправить свой код в heroku, но он работает на местном уровне. Когда я делаю rake assets:precompile в терминале, у меня есть этот ответ: rake aborted! Sprockets::FileNotFound: couldn't find file 'turbolinks' with type 'application/javascript' Я больше не хочу использовать звездочки

Я попробовал это: https://www.innoq.com/en/blog/rails-custom-elements-with-turbolinks-webpack/

но когда я делаю:

class ApplicationController < ActionController::Base
  include Turbolinks::Redirection
  # ...
end

У меня есть эта ошибка uninitialized constant ApplicationController::Turbolinks от ошибки consol

Мой application.js из app / javascript / packs /

import Turbolinks from 'turbolinks'
Turbolinks.start()

import '../css/application.scss'
import 'bootstrap'

Мой пакет.json

{
  "name": "**********",
  "private": true,
  "dependencies": {
    "@rails/webpacker": "3.5",
    "bootstrap": "^4.2.1",
    "jquery": "^3.3.1",
    "popper.js": "^1.14.6",
    "turbolinks": "^5.2.0"
  },
  "devDependencies": {
    "webpack-dev-server": "2.11.2"
  },
  "version": "1.0.0",
  "main": "index.js",
  "repository": "git@github.com:******/*************.git",
  "author": "******* <******@email.com>",
  "license": "MIT"
}

Мой Gemfile

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.6.0'

# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '~> 5.2.2'
gem 'pg', '>= 0.18', '< 2.0'
gem 'puma', '~> 3.11'
gem 'webpacker'
gem 'jbuilder', '~> 2.5'
gem 'simple_form'
gem 'postmark-rails'
gem 'cloudinary'
gem 'dotenv-rails', groups: [:development, :test]
gem 'rails_admin'
gem 'turbolinks', require: false
gem 'bootsnap', '>= 1.1.0', require: false

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'
  gem 'better_errors'
  gem 'binding_of_caller'
  gem 'letter_opener'
end

group :test do
  gem 'capybara', '>= 2.15'
  gem 'selenium-webdriver'
  gem 'chromedriver-helper'
end

Мой webpacker.yml из приложения / config / webpack /

default: &default
  source_path: app/javascript
  source_entry_path: packs
  public_output_path: packs
  cache_path: tmp/cache/webpacker

  # Additional paths webpack should lookup modules
  # ['app/assets', 'engine/foo/app/assets']
  resolved_paths: []

  # Reload manifest.json on all requests so we reload latest compiled packs
  cache_manifest: false

  extensions:
    - .js
    - .sass
    - .scss
    - .css
    - .module.sass
    - .module.scss
    - .module.css
    - .png
    - .svg
    - .gif
    - .jpeg
    - .jpg

development:
  <<: *default
  compile: true

  # Reference: https://webpack.js.org/configuration/dev-server/
  dev_server:
    https: false
    host: localhost
    port: 3035
    public: localhost:3035
    hmr: false
    # Inline should be set to true if using HMR
    inline: true
    overlay: true
    compress: true
    disable_host_check: true
    use_local_ip: false
    quiet: false
    headers:
      'Access-Control-Allow-Origin': '*'
    watch_options:
      ignored: /node_modules/


test:
  <<: *default
  compile: true

  # Compile test packs to a separate directory
  public_output_path: packs-test

production:
  <<: *default

  # Production depends on precompilation of packs prior to booting for performance.
  compile: false

  # Cache manifest.json for performance
  cache_manifest: true

My application.html.erb из app / views / layouts

<%= javascript_pack_tag 'application', 'data-turbolinks-eval': false, defer: true %>
<%= stylesheet_pack_tag 'application', 'data-turbolinks-track': 'reload', defer: true %>

1 Ответ

0 голосов
/ 29 января 2019

Для меня проблема заключается в application.js.После создания нового приложения Ruby on Rails мой заголовок application.js выглядел так:

До

//= require turbolinks
//= require_tree .

Для // = требуются турболинки , казалось, вызывало проблему, потому что я никогда не устанавливал турболинки или что-то подобное.Удаление этой строки исправило проблему для меня:

После

//= require_tree .
...