Заранее спасибо.
Я пытаюсь, чтобы мое приложение Rails 5.1 отвечало на запрос application / javascript.
По сути, я хочу иметь возможность поместить тег с src, указывающим на мое приложение Rails, чтобы я мог запросить выполнение файла JS.
У меня в app / javascript / packs есть файл, который пока имеет только console.log( 'hello_world' )
.Все, что я хочу сделать, это выполнить на моей странице.
У меня есть действие контроллера, которое выглядит следующим образом:
def hello_world_js
send_file(
"#{Rails.root}/app/public/packs/hello_world.js",
:filename => "hello_world.js",
:type => "application/javascript"
)
end
Запрос src приводит к этому действию контроллера.Я, однако, получаю следующую ошибку:
ActionController::MissingFile (Cannot read file /Users/mac/Workspace/rails_app_dir/app/public/packs/hello_world.js)
Это имеет смысл для меня.
Как правило, у вас будет javascript_pack_tag
в файле представления, который вызовет компиляцию и возврат javascript src.Тем не менее, я не рассматриваю эти движения, поэтому у меня нет готового скомпилированного файла JS.
Как я могу настроить его так, чтобы это могло быть вызвано запросом <script/>
src?
Проецируя в будущее, я предполагаю, что скомпилированный файл будет иметь строку символов после своего имени.hello_world.js
будет на самом деле что-то вроде hello_world-8f87b73be32a9b3e4fb2.js
- как мне это приспособить?
Одним из решений, которое приходит на ум, является использование конечной точки для рендеринга файла .js.erb, который затем добавляет тег снова.Я хочу избежать этого, потому что тогда я делаю два запроса на свой сервер.
Любой вклад очень ценится.Спасибо.