代码之家  ›  专栏  ›  技术社区  ›  EastsideDev

在Rails 6和webpack中找不到图像

  •  0
  • EastsideDev  · 技术社区  · 5 年前
    Rails 6
    Webpacker
    

    在我的app/javascript/packages/application.js中,我有以下内容:

    const images = require.context('../images', true)
    const imagePath = (name) => images(name, true)
    

    在app/javascript/images文件夹中,我添加了一张图片:

    my_company_logo.svg
    

    我试图在视图中使用此图像,如下所示:

    = image_pack_tag 'my_company_logo'
    

    在webpacker.yml中,我有以下内容:

    webpack_compile_output: true
    compile: true
    

    然后我重新运行我的应用程序

    但是,当我尝试运行应用程序时,我收到以下错误消息:

    Webpacker can't find my_company_logo in /myapp/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.js": "/packs/js/application-0c5dbf084c0853e7bb12.js",
      "application.js.map": "/packs/js/application-0c5dbf084c0853e7bb12.js.map",
      "entrypoints": {
        "application": {
          "js": [
            "/packs/js/application-0c5dbf084c0853e7bb12.js"
          ],
          "js.map": [
            "/packs/js/application-0c5dbf084c0853e7bb12.js.map"
          ]
        },
        "books": {
          "js": [
            "/packs/js/books-afabcf18be852ccbec8b.js"
          ],
          "js.map": [
            "/packs/js/books-afabcf18be852ccbec8b.js.map"
          ]
        }
      },
      "media/images/my_company_logo.svg": "/packs/media/images/my_company_logo-7f2088787060688b66225e0671589919.svg",
      "media/webfonts/fa-solid-900.eot": "/packs/media/webfonts/fa-solid-900-89e02bae.eot",
      "media/webfonts/fa-solid-900.svg": "/packs/media/webfonts/fa-solid-900-0724bb8b.svg",
      "media/webfonts/fa-solid-900.ttf": "/packs/media/webfonts/fa-solid-900-75f38a15.ttf",
      "media/webfonts/fa-solid-900.woff": "/packs/media/webfonts/fa-solid-900-cdfec5cf.woff",
      "media/webfonts/fa-solid-900.woff2": "/packs/media/webfonts/fa-solid-900-55eb2a60.woff2",
      "books.js": "/packs/js/books-afabcf18be852ccbec8b.js",
      "books.js.map": "/packs/js/books-afabcf18be852ccbec8b.js.map"
    }
    

    有什么想法吗?

    解决方案:

    使用webpacker时,您需要包含媒体前缀:

    = image_pack_tag 'media/images/my_company_logo'
    
    0 回复  |  直到 5 年前