为什么在stackblitz里编辑react项目时,引入本地图片会报找不到包的错误?

为什么在stackblitz里编辑react项目时,引入本地图片会报找不到包的错误?

img

img

img

./cat.png试试

按那个按钮,去安装下对应的package看看

参考GPT和自己的思路,在StackBlitz上编辑React项目时,当你想引入本地图片时,通常会遇到“Can't find package”或“Module not found”的错误。

这是因为在StackBlitz上,你需要使用相对于项目根目录的路径来引用本地图片,而不是使用相对于当前文件的路径。所以你需要确保你的图片文件位于项目根目录中的某个目录下。

例如,如果你的项目结构如下所示:

my-app/
  public/
    cat.png
  src/
    App.js

那么你可以使用以下路径引用图片:

import catImage from '../public/cat.png';

注意,在StackBlitz中,你需要使用../public/而不是./public/,因为项目根目录不是当前文件的上一级目录,而是它们的共同祖先目录。

另外,如果你仍然遇到了问题,可以尝试使用绝对路径来引用图片,如:

import catImage from '/public/cat.png';

这应该可以解决一些路径引用的问题。
回答不易,还请采纳!!!

目前发现的唯一解决办法是直接把图片放在GitHub上,这样就可以直接引用图片的网址url,这样可以正常显示

img

img

参考GPT和自己的思路:Stackblitz是一个在线的集成开发环境(IDE),与本地开发环境不同,它不会自动将您本地的文件上传到它的服务器上。因此,当您在Stackblitz中尝试引用本地文件(如图片)时,它无法在本地找到该文件。

为了解决这个问题,您可以将您的图片上传到云存储(如Amazon S3、Google Cloud Storage等)并通过网络链接引用该图片。另外,您也可以尝试使用像Unsplash这样的公共图片库,以获取可通过URL引用的图片。
如果你的本地图片在你的 React 项目中的 public 文件夹中,你可以使用相对路径来引用它们。例如,如果你的图片在 public/images 文件夹中,你可以使用以下代码来引用它们:

import React from 'react';

function App() {
  return (
    <div>
      <img src="/images/example.jpg" alt="Example" />
    </div>
  );
}

export default App;


如果你的图片在 src 文件夹中,你可以使用相对于当前文件的相对路径来引用它们。例如,如果你的图片在 src/images 文件夹中,你可以使用以下代码来引用它们:

import React from 'react';
import exampleImage from './images/example.jpg';

function App() {
  return (
    <div>
      <img src={exampleImage} alt="Example" />
    </div>
  );
}

export default App;


请确保你的文件路径和文件名都正确。如果你使用的是绝对路径,你需要确保你的图片文件在你的项目中可访问。

基于bing、GPT部分内容和本人思考总结:
在StackBlitz中编辑React项目时,引入本地图片会报找不到包的错误,这是因为StackBlitz是一个在线的Web IDE,它不支持本地文件系统。因此,当你在React项目中引入本地图片时,StackBlitz无法找到该图片的路径,从而报错。
为了解决这个问题,可以将图片上传到云存储服务(如AWS S3、Google Cloud Storage等),然后在React项目中使用该云存储服务的URL来引用图片。另外一个解决方法是使用base64编码,在React项目中直接使用base64编码的图片数据,而不是引用本地图片路径。
需要注意的是,使用云存储服务或base64编码会增加网页加载时间和网络带宽的消耗。因此,在实际项目中应该考虑使用CDN(内容分发网络)来加速图片加载,同时对图片进行压缩和优化,以减少网页加载时间和网络带宽的消耗。

以下答案由GPT-3.5大模型与博主波罗歌共同编写:
在 StackBlitz 中,在 React 项目中引入本地图片需要注意以下几点:

  1. 首先需要将图片放在 public 文件夹中,这是 React 项目识别并整合资源的文件夹。

  2. 其次,需要使用相对路径来引入图片。如果图片放在 public 文件夹的顶层,则可以使用 "/image.png" 这样的路径,如果放在子文件夹中,需要使用相应的路径。

  3. 最后,如果图片引入后还是出现了找不到包的错误,则需要确认是否在代码中使用了 webpack 相关配置,例如 alias,alias 会修改 webpack 的默认解析路径,导致无法找到该图片。

以下是一个在 StackBlitz 中可以正确引入本地图片的例子:

在 public 文件夹内放置一张名为 image.png 的图片,然后在 App.js 中引入该图片:

import React from "react";
import logo from "./logo.svg";
import "./App.css";
import image from "./image.png";

function App() {
  return (
    <div className="App">
      <img src={image} alt="react" />
    </div>
  );
}

export default App;

这样就可以正确展示图片了。
如果我的回答解决了您的问题,请采纳!

在 StackBlitz 中编辑 React 项目时,可能会遇到引入本地图片报错的情况。这通常是因为 StackBlitz 并不支持直接从本地引用图片的方式。下面是可能的解决方案:

  1. 将图片上传至在线服务,如 Imgur、Cloudinary 等,并通过网络链接引用图片。

  2. 直接将图片放在 public 文件夹下,并通过相对路径引用图片。

  3. 将图片转换成 base64 编码,并通过 data URI 格式内嵌到代码中

需要注意的是,这种方式会增加代码体积,压缩不好可能会影响性能。建议只在图片很小且数量较少时使用。