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

变量中的Reactjs require image url不工作

  •  3
  • Ruan  · 技术社区  · 6 年前

    奇怪的问题

    我在源目录中动态地包含图像的路径。

    将映像目录作为字符串放入可以很好地工作(我注释掉的部分),但一旦我将其放入变量中,就会出现错误“找不到模块”。“”

       var imageDir="assets/img/MyImage.png";
      --Working     // const imageData= require('assets/img/MyImage.png');
      --Not Working    const imageData= require(imageDir);
    

    有人知道为什么吗?

    同样的ish问题 Here 很遗憾没有回答

    2 回复  |  直到 6 年前
        1
  •  5
  •   Carr    4 年前

    Webpack需要知道在编译时要捆绑哪些文件,但表达式(变量)的实际路径值只能在运行时给定,您需要 require.context :

    /* If the structure is like:
    
        src -
             |
              -- index.js (where these codes are deployed)
             |
              -- assets - 
                         |
                          --img
    */  
    
          
    let assetsPath = require.context('./assets/img', false, /\.(png|jpe?g|svg)$/); 
    
    // See where are the images after bundling.
    // console.log(assetsPath('./MyImage.png'));
    
    // You can put all the images you want in './assets/img', and access it. 
    var newElement = {
        "id": doc.id,
        "background": assetsPath('./MyImage.png');
    };
    
        2
  •  0
  •   Miodrag Trajanovic    6 年前

    如果希望在react web应用程序上使用图像,可以使用下一个代码

    当直接在html标记中使用时,但如果可以在java脚本的一部分中使用,则必须使用 const image = require('../Assets/image/03.jpg') 把这个字母叫做常数 {image} 示例标记之间