无法加载 Next.js 版本 10 中的内置图像组件
Built-in Image component in Next.js version 10 can't be loaded
我正在尝试使用新的内置 Image
组件将图像插入我的 Next.js v.10 应用程序。
代码如下:
import * as React from "react";
import Image from "next/image";
export const TestImage = () => {
return (
<Image
src="/images/dummy-rectangle-image.png"
alt="about"
unsized
/>
);
};
我的图像位于 public/static/images
文件夹中。
next.config.js
:
const withPlugins = require("next-compose-plugins");
const withCSS = require("@zeit/next-css");
const withSass = require("@zeit/next-sass");
const withBundleAnalyzer = require("@next/bundle-analyzer");
const nextRuntimeDotenv = require("next-runtime-dotenv");
const withConfig = nextRuntimeDotenv({ public: ["API_URL", "API_KEY"] });
const nextConfig = {
analyzeServer: ["server", "both"].includes(process.env.BUNDLE_ANALYZE),
analyzeBrowser: ["browser", "both"].includes(process.env.BUNDLE_ANALYZE),
bundleAnalyzerConfig: {
server: {
analyzerMode: "static",
reportFilename: "../bundles/server.html",
},
browser: {
analyzerMode: "static",
reportFilename: "../bundles/client.html",
},
},
publicRuntimeConfig: {
PROXY_MODE: process.env.PROXY_MODE,
API_URL: process.env.API_URL,
API_KEY: process.env.API_KEY,
STATIC_PATH: process.env.STATIC_PATH,
},
};
module.exports = withConfig(
withPlugins([[withCSS], [withSass], [withBundleAnalyzer]], nextConfig)
);
结果:
要求URL:
localhost:3000/_next/image?url=%2Fimages%2Fblack-arrow.png&w=768&q=75
状态代码:500 内部服务器错误
似乎 Next.js 配置有问题,无法识别图像的正确路径。我阅读了文档提示,但似乎对我的情况没有任何帮助。
Next.js v.10 中 Image 组件的正确使用方法是什么?
如果您的图像位于 public/static/images
文件夹中,那么您的 <Image />
组件需要有一个 src="/static/images/image-name.png"
的 src。这是因为 public 文件夹中的任何内容都是直接提供的,包括目录。
我正在尝试使用新的内置 Image
组件将图像插入我的 Next.js v.10 应用程序。
代码如下:
import * as React from "react";
import Image from "next/image";
export const TestImage = () => {
return (
<Image
src="/images/dummy-rectangle-image.png"
alt="about"
unsized
/>
);
};
我的图像位于 public/static/images
文件夹中。
next.config.js
:
const withPlugins = require("next-compose-plugins");
const withCSS = require("@zeit/next-css");
const withSass = require("@zeit/next-sass");
const withBundleAnalyzer = require("@next/bundle-analyzer");
const nextRuntimeDotenv = require("next-runtime-dotenv");
const withConfig = nextRuntimeDotenv({ public: ["API_URL", "API_KEY"] });
const nextConfig = {
analyzeServer: ["server", "both"].includes(process.env.BUNDLE_ANALYZE),
analyzeBrowser: ["browser", "both"].includes(process.env.BUNDLE_ANALYZE),
bundleAnalyzerConfig: {
server: {
analyzerMode: "static",
reportFilename: "../bundles/server.html",
},
browser: {
analyzerMode: "static",
reportFilename: "../bundles/client.html",
},
},
publicRuntimeConfig: {
PROXY_MODE: process.env.PROXY_MODE,
API_URL: process.env.API_URL,
API_KEY: process.env.API_KEY,
STATIC_PATH: process.env.STATIC_PATH,
},
};
module.exports = withConfig(
withPlugins([[withCSS], [withSass], [withBundleAnalyzer]], nextConfig)
);
结果:
要求URL: localhost:3000/_next/image?url=%2Fimages%2Fblack-arrow.png&w=768&q=75
状态代码:500 内部服务器错误
似乎 Next.js 配置有问题,无法识别图像的正确路径。我阅读了文档提示,但似乎对我的情况没有任何帮助。
Next.js v.10 中 Image 组件的正确使用方法是什么?
如果您的图像位于 public/static/images
文件夹中,那么您的 <Image />
组件需要有一个 src="/static/images/image-name.png"
的 src。这是因为 public 文件夹中的任何内容都是直接提供的,包括目录。