Next.js 导出的静态 HTML 文件找不到 CSS 和 JS 文件,设置了不正确的路径



在Next.Js中导出静态html文件,html中的href和src目录不会转到"_next"文件夹中。如果我手动添加…/…/在index.html中,那么它工作正常。JS文件也一样。

在导出之前,知道在哪里预先配置它吗?

谢谢!

p。我有一个webpack配置。

const config = {
mode: isProd ? "production" : "development",
entry: {
index: "./src/index.tsx"
},
output: {
path: `${__dirname}/dist`,
publicPath: '/',
filename: "[name].js"
},
resolve: {
extensions: [".js", ".jsx", ".ts", ".tsx"],
alias: resolveTsAliases(__dirname + "/tsconfig.json")
},
module: {
rules: [
{
test: /.tsx?$/,
use: "babel-loader",
exclude: /node_modules/
},
{
test: /.s[ac]ss$/i,
use: ["style-loader", "css-loader", "sass-loader"]
},
{
test: /.(jpg|png)$/,
use: {
loader: "url-loader",
options: {
limit: 25000
}
}
},
{
test: /.svg$/,
use: "file-loader"
}
]
},
plugins: [
new HtmlWebpackPlugin({
template: "src/index.html"
}),
new webpack.DefinePlugin({
"process.env.NODE_ENV": JSON.stringify(process.env.NODE_ENV)
})
]
};

我发现了另一个堆栈溢出线程,但他们也手动设置了他们的目录,但我需要它工作,因为有很多文件被导出。

试着研究文档,无法找到为导出文件预配置CSS/JS路径的可能性。

问题是它需要在一个实时服务器上运行,所以如果你托管了"/out"文件夹中所有需要的文件,并运行一个活动服务器修复这个问题。

自己打开index.html将无法识别CSS和jess文件,所以只需在服务器上运行。

Test on rush .sh easy as 123.

您必须将此添加到next.config.js

module.exports = {   
assetPrefix: "." 
}

希望对你有帮助

添加

模块。出口= {basePath:"。/子文件夹",}

这将修复它!如果你需要在子文件夹中导航,而你的css/js不起作用,这就是你在next.config.js中缺少的内容。