在特定路径下在现有Laravel项目中提供NextJS静态导出

kzmpq1sx  于 2023-04-07  发布在  其他
关注(0)|答案(1)|浏览(198)

我有一个已经存在的laravel项目。现在我想在我的laravel项目中提供nextjs静态生成的文件,路由类似于www.mylaravelproject.com/my-next-app。我知道如何使用vanilla Reactjs,但不知道如何使用Nextjs,因为会有很多页面,如Login.html,About.html,Profile.html等。我到处搜索,但没有找到任何解决方案。有什么方法可以解决这个问题吗?

kxeu7u2r

kxeu7u2r1#

是的,有一种方法可以在特定路径下的现有Laravel项目中提供NextJS静态导出。
首先,您需要使用命令“npm run export”或“yarn export”为NextJS应用生成静态文件,具体取决于您使用的包管理器。这将创建一个“out”文件夹,其中包含所有生成的静态HTML页面。
然后,您可以将“out”文件夹中的内容复制到Laravel项目中的新文件夹中,例如“public/my-next-app”。确保文件夹结构保持不变,即每个页面都应该有自己的文件夹,其中包含“index.html”文件。
最后,你需要修改你的Laravel路由,以从“public/my-next-app”文件夹中提供静态HTML页面。你可以通过添加以下路由来实现:
路由::get('my-next-app/{any?}',function(){ return file_get_contents(public_path('my-next-app/index.html'));})-〉where('any ','. *');
此路由将匹配任何以“my-next-app”开头的URL,并提供相应的静态HTML文件。如果URL不匹配任何文件,则默认情况下将提供“index.html”文件。
就是这样!现在你可以在URL“www.example.com”下访问你的NextJS应用程序www.mylaravelproject.com/my-next-app了。

相关问题