相关疑难解决方法(0)

NextJS 部署到特定的 URL 路径

我正在开发我的第一个 NextJS 应用程序。当我运行“npm run dev”或“npm run start”时,它会将我的应用程序部署到

http://host:port/
Run Code Online (Sandbox Code Playgroud)

当我导航到一个页面时,网址变为

http://host:port/page1
Run Code Online (Sandbox Code Playgroud)

我需要有自己的特定网址,例如

http://host:port/my-test-application/path-for-my-app/
http://host:port/my-test-application/path-for-my-app/page1
Run Code Online (Sandbox Code Playgroud)

此外,我的应用程序有很多元素可以链接到应用程序的其他区域,我需要这些元素也可以使用 basePath 转到 URL 而不仅仅是转到根路径。

我还将将此应用程序部署到具有不同 basePath 的不同服务器,因此无法在我的应用程序中进行硬编码。

我怎样才能做到这一点?

对于其他应用程序,例如 react/vue/angular/native JS,我只需构建我的应用程序并将构建代码放在我的服务器上的“my-test-application/path-for-my-app”文件夹中。

我用我的 NextJS 应用程序尝试过这个,但我收到一个错误,说找不到“.next”文件夹。

我用谷歌搜索,可以找到一些使用“assetPrefix”或使用“Zones”的参考。但是,我真的不明白我应该做什么。

如何将我的应用程序部署到特定 URL

解决方案 1:重组“页面” - 无法部署到具有不同 basePaths 的不同服务器

我可以在“pages”目录中创建文件夹结构并更改我的所有元素以使用此文件夹结构。

|- pages
     |- my-test-application
           |- path-for-my-app
                |- index.js
                |- page1.js


<Link href="/my-test-application/path-for-my-app/page1" >
Run Code Online (Sandbox Code Playgroud)

我不喜欢这个解决方案,因为 basePath 被硬编码到我的应用程序中,与部署设置相关。

如果我想将我的应用程序部署在具有不同 basePaths(即下面)的 2 个服务器上,我将必须有 2 个版本的代码。

http://host:port/my-test-application_1/path-for-my-app/page1
http://host:port/my-test-application_2/diff-path-for-my-app/page1
Run Code Online (Sandbox Code Playgroud)

更新:我在 3 月 5 日更新了这个问题,包括我对 s 工作的需求和我不喜欢的一个解决方案。

reactjs next.js

7
推荐指数
3
解决办法
2万
查看次数

标签 统计

next.js ×1

reactjs ×1