Rails: Webpacker 4.2在/app/public/packs/manifest.json中找不到应用程序 heroku

27 浏览
0 Comments

Rails: Webpacker 4.2在/app/public/packs/manifest.json中找不到应用程序 heroku

我有点困惑。我的本地rails应用程序与webpacker 4.2和react很好地配合使用,但在部署到生产环境时,出现了令人愉快的错误:can't find application in /app/public/packs/manifest.json。我尝试了以下方法:

- 尝试添加/删除用于javascript pack标签的turbo link详细信息。

- 删除了javascript include标签(不确定是否有帮助)。

- 确保我使用的是最新的webpacker 4.2。

- 在heroku上手动运行rake assets:clean && rake assets:precompile,以确保构建正常进行。

我是否错过了构建步骤或者在生产环境中遗漏了某些原因导致这个问题?还有什么需要检查的?

服务器错误:

2019-12-03T15:18:19.022024+00:00 app[web.1]: I, [2019-12-03T15:18:19.021952 #30] INFO -- : [aa0374eb-bab1-40cc-b40b-6ae3d195e07d] Completed 500 Internal Server Error in 112ms (ActiveRecord: 30.4ms | Allocations: 21296)

2019-12-03T15:18:19.023103+00:00 app[web.1]: F, [2019-12-03T15:18:19.023029 #30] FATAL -- : [aa0374eb-bab1-40cc-b40b-6ae3d195e07d]

2019-12-03T15:18:19.023107+00:00 app[web.1]: [aa0374eb-bab1-40cc-b40b-6ae3d195e07d] ActionView::Template::Error (Webpacker在/app/public/packs/manifest.json中找不到应用程序。可能的原因:

2019-12-03T15:18:19.023109+00:00 app[web.1]: 1. 你想为你的环境设置webpacker.yml的compile值为true,除非你使用`webpack -w`或webpack-dev-server。

2019-12-03T15:18:19.023111+00:00 app[web.1]: 2. webpack尚未重新运行以反映更新。

2019-12-03T15:18:19.023114+00:00 app[web.1]: 3. 你已经错误配置了Webpacker的config/webpacker.yml文件。

2019-12-03T15:18:19.023116+00:00 app[web.1]: 4. 你的webpack配置没有创建清单。

2019-12-03T15:18:19.023120+00:00 app[web.1]: 你的清单包含:

{

"application.js": "/packs/js/application-2a0e2c932678ebbf2ae7.js",

"application.js.map": "/packs/js/application-2a0e2c932678ebbf2ae7.js.map",

"entrypoints": {

"application": {

"js": [

"/packs/js/application-2a0e2c932678ebbf2ae7.js"

],

"js.map": [

"/packs/js/application-2a0e2c932678ebbf2ae7.js.map"

]

},

"server_rendering": {

"js": [

"/packs/js/server_rendering-eb794d024d4852e8ab55.js"

],

"js.map": [

"/packs/js/server_rendering-eb794d024d4852e8ab55.js.map"

]

}

},

"server_rendering.js": "/packs/js/server_rendering-eb794d024d4852e8ab55.js",

"server_rendering.js.map": "/packs/js/server_rendering-eb794d024d4852e8ab55.js.map"

}

...

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

<%= stylesheet_pack_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

<%= javascript_pack_tag 'application' %>

2019-12-03T15:18:19.023193+00:00 app[web.1]: [aa0374eb-bab1-40cc-b40b-6ae3d195e07d] app/views/layouts/application.html.erb:10

Webpacker.yml:

# 注意:必须重新启动bin/webpack-dev-server才能使更改生效

default: &default

source_path: app/javascript

source_entry_path: packs

public_root_path: public

public_output_path: packs

cache_path: tmp/cache/webpacker

check_yarn_integrity: false

webpack_compile_output: false

# webpack应该查找模块的其他路径

# ['app/assets', 'engine/foo/app/assets']

resolved_paths: ['app/assets']

# 在所有请求上重新加载manifest.json,以便重新加载最新编译的packs

cache_manifest: false

# 提取并发出css文件

extract_css: false

static_assets_extensions:

- .jpg

- .jpeg

- .png

- .gif

- .tiff

- .ico

- .svg

- .eot

- .otf

- .ttf

- .woff

- .woff2

extensions:

- .jsx

- .vue

- .mjs

- .js

- .sass

- .scss

- .css

- .module.sass

- .module.scss

- .module.css

- .png

- .svg

- .gif

- .jpeg

- .jpg

development:

<<: *default

compile: true

# 通过检查package.json、yarn.lock和node_modules来验证正确的包和版本是否已安装

check_yarn_integrity: true

# 参考:https://webpack.js.org/configuration/dev-server/

dev_server:

https: false

host: localhost

port: 3035

public: localhost:3035

hmr: false

# 如果使用HMR,则应将inline设置为true

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

# 将测试packs编译到单独的目录

public_output_path: packs-test

production:

<<: *default

# 为了提高性能,在启动之前预编译packs

compile: true

# 提取并发出css文件

extract_css: true

# 为了提高性能,缓存manifest.json

cache_manifest: true

0