Webpacker 部署问题 Rails 6

Webpacker Deployment Issue Rails 6

这是错误代码:

ActionView::Template::Error (Webpacker can't find stylesheets 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: {
     "application.css": "/packs/css/application-77c6d56c.css",
     "application.js": "/packs/js/application-202b434086ff6248f760.js",
     "application.js.map": "/packs/js/application-202b434086ff6248f760.js.map",
     "entrypoints": {
     "application": {
     "css": [ "/packs/css/application-77c6d56c.css" ],
     "js": [ "/packs/js/application-202b434086ff6248f760.js" ],
     "js.map": [ "/packs/js/application-202b434086ff6248f760.js.map" ]

违规代码是:

7:     <%= stylesheet_link_tag "https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" %>
8:     <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>
9:     <%= javascript_pack_tag 'application', 'data-turbolinks-track': 'reload' %>
10:     <%= stylesheet_pack_tag 'stylesheets', media: 'all', 'data-turbolinks-track': 'reload' %>
11:     <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
12:     <link rel="stylesheet" href="https://unpkg.com/tailwindcss/dist/tailwind.min.css">

我意识到我有不必要的 link_tag(s),但我把它们放在那里只是为了确保一切顺利进行。所有这些在开发中都完美无缺,但是一旦部署到 Heroku,它就会在这里崩溃,所以现在没有任何工作。

我尝试添加一些@import(s) 来连接所有 css/js 文件,但无济于事。我不确定此时的问题是什么。

使用 Rails 6、Webpacker、TailwindCSS,没有使用真正的 JS,所以删除所有脚本内容不是真正的问题,我只是离开它,因为这是一个仍在开发中的项目,并且会在某些时候包含 JS。

我遇到了同样的问题并注意到几个 templates/tutorials 用于将 Tailwind CSS 添加到 Rails 指定添加到 application.html.erb:

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

而其他人指定:

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

不是 webpack 专家,但通过一些阅读让我确信 stylesheet_pack_tag 帮助程序中的名称是 webpack 将要打包的名称(来自您的 \app\javascript\packs 文件夹),但也是样式表您的布局正在寻找的由 webpack 捆绑的名称(来自您的 \public\packs\css 文件夹)。 确实令人困惑,但我想这是配置上的惯例。它还与上面抛出的错误有关。如果您将标签重命名为 application,它应该可以解决您的错误(至少它似乎对我有用)。也许 stylesheets 名称与旧的 rails 版本相关?