javascript - 防止从 pages 文件夹中的组件和公用文件夹创建路由。并拒绝访问查看公用文件夹中的文件。NextJs
问题描述
我有一个带有自定义服务器的 NextJs 应用程序,我在其中自定义了一条路线。我根据主机名和路径名显示模板的位置。
我的 server.js
const next = require('next');
const { createServer } = require('http');
const { parse } = require('url');
const dev = process.env.ENV === 'local';
const app = next({ dev });
const handle = app.getRequestHandler();
const port = 3000;
app.prepare().then(() => {
createServer(async (req, res) => {
const parsedUrl = parse(req.url, true);
const { pathname, query } = parsedUrl;
const pathnameFromServer = 'test_path_name';
const templateFromServer = 'template1';
if (pathname === `/${pathnameFromServer}`) {
await app.render(req, res, `/${templateFromServer}`, query);
} else {
await handle(req, res, parsedUrl);
}
}).listen(port, (err) => {
if (err) throw err;
console.log('> Ready on http://localhost:3000');
});
});
我正在页面文件夹中创建一个模板。我想在其中创建组件,公用文件夹。像这样。
但是 NextJs 将 pages 文件夹中的所有内容构建为路由。
我的 next.config.js
const withTM = require('next-transpile-modules')(['@nfs-react/components']);
module.exports = withTM({
useFileSystemPublicRoutes: false,
});
我需要防止从页面文件夹中的组件和公用文件夹创建路由。我还需要拒绝访问以查看公用文件夹中的文件。
解决方案
您可以将/pages
文件夹命名为其他名称,因此 Next.js 将忽略它。
推荐阅读
- javascript - 如何在js中将MM/dd/yyyy HH:mm:ss zzz格式的字符串转换为日期
- php - Illuminate\Routing\Exceptions\UrlGenerationException [Route: admin.doctor.edit] 缺少必需参数 [Missing parameter: doctor]
- android - 有没有办法为 com.google.android.material.tabs.TabLayout Tab 设置标题和副标题?
- c++ - C++、WinApi、月历控件
- javascript - 如何使用 jquery 循环遍历 DOM 元素的文本并匹配变量的值?
- php - yii2:将查询联合放在第一个查询的最后一个对象上
- python - 使用 RQ 队列排队两步过程
- ios - 伞框架 - 未找到嵌套框架的标头
- python-3.x - 循环页面并在 Python 中抓取内容
- c# - C#一次两个Form在闪烁,焦点在切换