Rails, отсутствует каталог / app / assets / javascripts - PullRequest
1 голос
/ 25 февраля 2020

Rails начинающий здесь!

Я пытаюсь загрузить. js файлы через конвейер ресурсов. Как упомянуто в Rails Guides :

2.2.1 Пути поиска

Когда на файл ссылаются из манифеста или помощника, Sprockets ищет его в трех местоположениях активов по умолчанию.

Местами расположения по умолчанию являются: каталоги images, javascripts и stylesheets в app/assets

Всякий раз, когда я run rails new my_project, Rails не генерирует каталог app/assets/javascripts и связанный с ним манифест:

app/assets/
├── config
│   └── manifest.js
├── images
└── stylesheets
    └── application.css

Я вручную добавил каталог /app/assets/javascripts и application.js файл. Вот его содержание:

//= require mytheme/js/test    # a simple alert('test')
//= require rails-ujs
//= require turbolinks
//= require_tree .
//= require mytheme/js/file1   # for each file of my theme

, но оповещение не появляется. Тем не менее, использование вкладки «Сеть» в режиме проверки браузера показывает мне, что есть файл. js (но это не относится к моей теме).

Должен ли я заключить, что Rails использует другой манифест для загрузки. js файлов? Прагматически, как я могу попросить Asset Pipeline загрузить определенные c. js файлы?

Длинный пост с вопросом для новичка, спасибо за ваше время.


ПРИМЕЧАНИЕ: Путь должен быть в порядке, так как мой css использует тот же путь и загружается. Я также добавил Rails.application.config.assets.paths << Rails.root.join('vendor') к config/initializers/assets.rb

1 Ответ

1 голос
/ 26 февраля 2020

Вероятно, у вас по умолчанию javascript_pack_tag в макете приложения, что является новым значением по умолчанию в Rails 6 с webpacker.

<%= javascript_pack_tag 'application' %>

Чтобы использовать добавленный вами js, вам нужен javascript_include_tag тег. Как и в предыдущих версиях Rails.

<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>

Это должно загрузить эти js файлы.

...