Я развертываю приложение rails 6 с webpacker на экземпляре AWS ec2 с Nginx, используя Capistrano. В первый раз, когда я развернул приложение в рабочей среде, я сделал это без предварительной компиляции ресурсов, занял слишком много времени и, наконец, работал. Но по мере того, как мое приложение увеличивалось в размере со многими css, js и другими ресурсами для компиляции, я продолжал прекомпилировать локально, используя RAILS_ENV=production bundle exec rails assets:precompile
. Затем я развернул в производство с SKIP_ASSETS=1 cap production deploy
, где SKIP_ASSETS - это грабли в папке capistrano / task. Мне удалось быстрее развернуть приложение без компиляции ресурсов на производственном сервере. Когда я обновляю sh браузер, я вижу свое приложение, но ресурсы, предварительно скомпилированные в папке public / packs, не обслуживаются (файлы ha sh. css и. js не соответствуют этому в public / packs.
Я получаю следующую ошибку, когда смотрю на консоль браузера
GET https://somedomain.net/packs/css/application-e1eaaa01.css net::ERR_ABORTED 404 (Not Found)
GET https://somedomain.net/packs/js/application-a89fd481878017456cf7.js net::ERR_ABORTED 404 (Not Found)
Это то, что я вижу в производстве в public / packs / css /
application-91e4cb67.css application-91e4cb67.css.br application-91e4cb67.css.gz
Глядя на производство журнала, я нашел это
FATAL -- : [2c61c3a9-0133-4eda-b37b-4fefe8948ec0]
[2c61c3a9-0133-4eda-b37b-4fefe8948ec0] ActionController::RoutingError (No route matches [GET] "/packs/js/application-a89fd481878017456cf7.js"):
Глядя на nginx .conf У меня есть эта строка
root /home/deploy/myapp/current/public
Я также пытался установить это в production.rb
но это не решило проблему
config.public_file_server.enabled=true
public / packs / manifest. json выглядит так:
{
"admin.js": "/packs/js/admin-3adbcf597c3892508a80.js",
"admin.js.map": "/packs/js/admin-3adbcf597c3892508a80.js.map",
"app.js": "/packs/js/app-aedc421c2c4342e69b23.js",
"app.js.map": "/packs/js/app-aedc421c2c4342e69b23.js.map",
"application.css": "/packs/css/application-e1eaaa01.css",
"application.css.map": "/packs/css/application-e1eaaa01.css.map",
"application.js": "/packs/js/application-a89fd481878017456cf7.js",
"application.js.map": "/packs/js/application-a89fd481878017456cf7.js.map",
"curriculum.js": "/packs/js/curriculum-90932b11d8e738537011.js",
"curriculum.js.map": "/packs/js/curriculum-90932b11d8e738537011.js.map",
"entrypoints": {
"admin": {
"js": [
"/packs/js/admin-3adbcf597c3892508a80.js"
],
"js.map": [
"/packs/js/admin-3adbcf597c3892508a80.js.map"
]
},
"app": {
"js": [
"/packs/js/app-aedc421c2c4342e69b23.js"
],
"js.map": [
"/packs/js/app-aedc421c2c4342e69b23.js.map"
]
},
"application": {
"css": [
"/packs/css/application-e1eaaa01.css"
],
"js": [
"/packs/js/application-a89fd481878017456cf7.js"
],
"css.map": [
"/packs/css/application-e1eaaa01.css.map"
],
"js.map": [
"/packs/js/application-a89fd481878017456cf7.js.map"
]
},
"curriculum": {
"js": [
"/packs/js/curriculum-90932b11d8e738537011.js"
],
"js.map": [
"/packs/js/curriculum-90932b11d8e738537011.js.map"
]
},
"jquery-ui": {
"js": [
"/packs/js/jquery-ui-3e39ba39480cd149114d.js"
],
"js.map": [
"/packs/js/jquery-ui-3e39ba39480cd149114d.js.map"
]
},
"jquery": {
"js": [
"/packs/js/jquery-9e6aaa895e0224ac507d.js"
],
"js.map": [
"/packs/js/jquery-9e6aaa895e0224ac507d.js.map"
]
},
"quill_editor": {
"js": [
"/packs/js/quill_editor-9b402f092ddc5d16a887.js"
],
"js.map": [
"/packs/js/quill_editor-9b402f092ddc5d16a887.js.map"
]
},
"shared_javascript": {
"js": [
"/packs/js/shared_javascript-f0cae6e551b8cfc573c9.js"
],
"js.map": [
"/packs/js/shared_javascript-f0cae6e551b8cfc573c9.js.map"
]
},
"video_player": {
"js": [
"/packs/js/video_player-8b5df237b6fc7da9efea.js"
],
"js.map": [
"/packs/js/video_player-8b5df237b6fc7da9efea.js.map"
]
}
},
"jquery-ui.js": "/packs/js/jquery-ui-3e39ba39480cd149114d.js",
"jquery-ui.js.map": "/packs/js/jquery-ui-3e39ba39480cd149114d.js.map",
"jquery.js": "/packs/js/jquery-9e6aaa895e0224ac507d.js",
"jquery.js.map": "/packs/js/jquery-9e6aaa895e0224ac507d.js.map",
"quill_editor.js": "/packs/js/quill_editor-9b402f092ddc5d16a887.js",
"quill_editor.js.map": "/packs/js/quill_editor-9b402f092ddc5d16a887.js.map",
"shared_javascript.js": "/packs/js/shared_javascript-f0cae6e551b8cfc573c9.js",
"shared_javascript.js.map": "/packs/js/shared_javascript-f0cae6e551b8cfc573c9.js.map",
"video_player.js": "/packs/js/video_player-8b5df237b6fc7da9efea.js",
"video_player.js.map": "/packs/js/video_player-8b5df237b6fc7da9efea.js.map"
}
Я чувствую, что манифест не обновлен с новой предварительно скомпилированной. css и. js хэшей ресурсов.
Любая идея, как я могу решить эту проблему на производстве? Нужно ли мне запускать указанную команду c webpacker на производстве, чтобы решить эта проблема. Спасибо