我将NextJS应用程序作为静态网站部署在自己的服务器上,运行良好。除了如果我试图通过在浏览器中键入url来访问一个不是主页的页面,我会得到404。(当我在应用程序中进行导航时,它正在工作!(
据我所知,为了创建我需要的路径,我只在pages文件夹中创建了一个.js。这似乎还不够?
它与env.BASE_URL进程有关吗?或者使用任何路由器?
这是我在页面文件夹中的一个文件:
import { Fragment, Suspense } from 'react';
import dynamic from 'next/dynamic';
import Loading from '../components/shared/Loading';
import SeoHead from '../components/SeoHead';
import myIMG from '../images/header_myimg.jpg';
const ThemeContent = dynamic(() => import('../components/ThemeContent'));
const ContentXYZ = dynamic(() => import('../components/ContentXYZ'));
const Contact = dynamic(() => import('../components/Contact'));
export default function Sucht(){
return (
<Fragment>
<SeoHead
title="xyz"
description="xyz"
url="/my-url"
/>
<Suspense fallback={<Loading/>}>
<ThemeContent
titleColor="darkblue"
image={myIMG}
imgAlt="xyz"
title="xyz"
subtitle="xyz"
text={<ContentXYZ/>}
/>
<Contact/>
</Suspense>
</Fragment>
);
}
这是我的下一个config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
reactStrictMode: false,
env:{
BASE_URL: process.env.BASE_URL
},
experimental: {
images: {
layoutRaw: true,
deviceSizes: [320, 380, 500, 750, 1000, 1200, 1450],
formats: ['image/webp'],
loader: "custom"
}
}
}
module.exports = nextConfig
你还需要什么吗?我相信这很容易。。。我真的很感谢你的帮助!
(我看到这个问题已经被问过了,但在我看来,他们没有一个静态网站,也没有在自己的服务器上托管它。所以答案真的不适合我的问题吗?(
我找到了一个解决方案!我在公用文件夹中放入了.htaccess!我在文件中写道:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^.]+)$ $1.html [NC,L]