Pot*_*sys 19 javascript reactjs next.js
我有一个在 Next.js 页面中使用的 React 组件:
/页面/index.js
import React from 'react';
import ReactDOM from 'react-dom';
import Layout from "../src/hoc/Layout/Layout";
import Main from "../src/components/Main/Main";
const Index = () => (
<Layout>
<Main />
</Layout>
);
export default Index
Run Code Online (Sandbox Code Playgroud)
在 Main.js 我有以下代码
import macbookIphone from '../../assets/images/mac-iphone.jpg';
Run Code Online (Sandbox Code Playgroud)
我收到以下错误
模块解析失败:意外字符“?” (1:0) 您可能需要一个合适的加载器来处理此文件类型,目前没有配置加载器来处理此文件。请参阅 https://webpack.js.org/concepts#loaders(此二进制文件省略了源代码)
我尝试执行以下操作
在next-config.js 中
const withImages = require('next-images')
module.exports = withImages()
Run Code Online (Sandbox Code Playgroud)
我仍然遇到同样的错误。
我究竟做错了什么?
brc*_*-dd 43
从 Next.js v11 开始,您可以执行您正在做的事情,而无需任何额外的配置:
import macbookIphone from '../../assets/images/mac-iphone.jpg';
<Image src={macbookIphone} />
// or
<img src={macbookIphone.src} />
Run Code Online (Sandbox Code Playgroud)
参考:next/image
对于早期版本,如果您希望导入图像而不是将它们放在公共目录中,那么您可以配置file-loader
或url-loader
.
Bla*_*umb 16
请参阅 https://nextjs.org/docs/basic-features/static-file-serving
Next.js 可以在根目录中名为 public 的文件夹下提供静态文件,如图像。然后,您的代码可以从基本 URL (/) 开始引用 public 中的文件。
小智 8
至少在我们的项目中,我们对图像使用 require 而不是 import。我们的下一个配置看起来与您的相似。
尝试以下操作,看看是否有帮助:
const macbookIphone = require('../../assets/images/mac-iphone.jpg');
Run Code Online (Sandbox Code Playgroud)
然后,您可以像这样使用您的图像作为 src:
<img src={macbookIphone}/>
Run Code Online (Sandbox Code Playgroud)
在 Next.js 中使用图像有点不同:
所有静态资源(例如图像)都必须放置在该public
目录中。
如果您的代码位于src目录下,即<app-name>/src/pages , <app-name>/src/components, ...
您的 public 文件夹必须位于 src 目录之外。公共文件夹不能位于 src 下,因为<app-name>/src/public.
在这种情况下,您的公共目录必须位于<app-name>/public
.
如果你的代码不在src目录下,即<app-name>/pages, <app-name>/components, ...
你的 public 目录应该在<app-name>/public
排序后,直接引用<Image />
组件中提供的文件,next/image
如下所示:
import Image from "next/image"
<Image src="/sample-image.png" width="64" height="64" />
Run Code Online (Sandbox Code Playgroud)
或者
import Image from "next/image"
import sampleImage from "<file-path>"
<Image src={sampleImage} width="64" height="64" />
Run Code Online (Sandbox Code Playgroud)
前提是您在public/sample-image.png下有一个文件
如果您有图像 URL,请直接将其提供给 'src' 属性。
在以下位置查找与布局相关的描述性示例: https: //github.com/vercel/next.js/tree/canary/examples/image-component
参考:
归档时间: |
|
查看次数: |
32339 次 |
最近记录: |