Webpacker在heroku上找不到应用程序

问题描述 投票:0回答:1

将我的应用程序部署到heroku时收到以下错误。

[当我运行RAILS_ENV = production rails s -p 3000时,它在生产环境中的本地服务器中运行良好。

因此,错误似乎仅发生在heroku中。

 Error during failsafe response: Webpacker can't find application in  /app/public/packs/manifest.json. 

 Possible causes:

 1. You want to set webpacker.yml value of compile to true for your environment
    unless you are using the `webpack -w` or the webpack-dev-server.

 2. webpack has not yet re-run to reflect updates.

 3. You have misconfigured Webpacker's config/webpacker.yml file.

 4. Your webpack configuration is not creating a manifest.
    Your manifest contains:
    {
    }

错误来自行:

  <%= javascript_pack_tag 'application' %> 

在app / views / layouts / application.html.erb文件中。

如果我删除该行,则该站点将加载,但是操作文本编辑器不起作用。

我尝试运行以下内容:

rm -rf node_modules
rails assets:clobber
yarn
rails assets:precompile

rails webpacker:install

就像这里描述的:Webpacker can't find application,但是没有用

我已经将web packer.yml值设置为true,这是我的config / webpacker.yml文件

# Note: You must restart bin/webpack-dev-server for changes to take effect

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: true

# 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

# Extract and emit a css file
  extract_css: false

static_assets_extensions:
  - .jpg
  - .jpeg
  - .png
  - .gif
  - .tiff
  - .ico
  - .svg
  - .eot
  - .otf
  - .ttf
  - .woff
  - .woff2

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

development:
  <<: *default
  compile: true

# Verifies that correct packages and versions are installed by inspecting package.json, yarn.lock, and node_modules
check_yarn_integrity: 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
  pretty: 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: true

# Extract and emit a css file
  extract_css: true

# Cache manifest.json for performance
 cache_manifest: true

public / packs / manifest.json:

{
  "application.js": "/packs/js/application-f887cd8adbcc18cacc27.js",
  "application.js.map": "/packs/js/application-f887cd8adbcc18cacc27.js.map",
  "entrypoints": {
    "application": {
      "js": [
        "/packs/js/application-f887cd8adbcc18cacc27.js"
      ],
      "js.map": [
        "/packs/js/application-f887cd8adbcc18cacc27.js.map"
      ]
    }
  }
}
ruby-on-rails heroku webpacker
1个回答
0
投票

检查您的.gitignore file。您可能会发现文件/app/public/packs/manifest.json被忽略(并且未被识别为更改的文件)。

通过以下命令检查文件在heroku上是否存在:-

heroku login
heroku run bash -a APPNAME
$ cat app/public/packs/manifest.json
© www.soinside.com 2019 - 2024. All rights reserved.