Search code examples
reactjs

dangerouslySetInnerHTML cannot resolve img src


I have an html file that I've turned into a string to be used with dangerouslySetInnerHTML. Everything renders fine except for the images within that html string. I can't seem to figure out what path I should provide. Currently I have them in a separate assets folder while the js file is in a dir one level down.


Solution

  • Your React .js files' location are irrelevant to the final address you need to provide to your src attributes. That's because a React up goes through a build process (development build or production build) where all the js files are bundled together and your public folder structure will be very different than the folder structure you have in your development (not to be confused with a development build).

    In a normal React app setup (say we create it with create-react-app), your final html is rendered in public/index.html where public is the root of your webserver. Now, let's assume you have your images in a folder called assets directly at the root of your webserver. Then your folder structure will look like this:

    public/
           index.html
           assets/
                  img1.jpg
                  img2.jpg
    

    Now you need to declare your img tags as follows:

    <img src="/assets/img1.jpg">
    

    Hope that helps.