我一直在本地开发一个Next.js网站,现在我想在我的Apache服务器上设置它(用cPanel)。然而,我对Next.js和Node应用程序非常陌生,也不太确定如何去做。
有人成功了吗?您能列出所需的步骤吗?服务器上应该有哪些文件?
而且,这能在子域上完成吗?
谢谢!
发布于 2020-06-16 14:35:23
首先,为了让我们在同一页上有明确的术语,人们在说“服务器”时有两三个非常不同的意思:
当我们在这里的时候,让我们也定义:
在您的例子中,您有一个机器,除了运行Program Apache (或者可能是"Apache服务器")之外,我们不知道它的情况。Apache服务器非常老,经过验证,并且非常擅长向用户提供原始文件。它还可以运行一些编程语言,如,并返回结果。
但是,Next.JS构建在编程语言 Javascript之上,Apache无法运行该语言。相反,Next.JS希望其服务器程序是节点。
所以这里的问题基本上是你有一个锤子,但只有螺丝。您不能使用您所拥有的工具Apache来解决您需要解决的问题,运行Node代码并返回结果。为了解决这个问题,你有两个选择:
首先,您可以找到一种方法来访问当前正在运行的服务器机器,然后告诉它,在Next.JS代码启动时运行指向它的Node。这可能是不可能的,这取决于谁拥有这台机器,以及他们如何设置它。
其次,也可能更容易一些,那就是放弃这个机器,而使用服务器作为服务。Heroku、AWS和Netlify都支持Next.JS,并且有一个免费的层。不过,最简单的解决方案可能是将其部署到维塞尔上,这是一个由Next.JS开发团队运行的服务器即服务,它为您提供了一个非常慷慨的免费层。
不过,好消息是,是的,next.js完全支持从子域托管。
发布于 2022-05-15 22:45:38
Next.JS允许您构建功能齐全的节点应用程序,以及简单的静态生成站点,如Jeckyl或Docpad。如果您的用例是一个静态生成的简单站点,请在这里查看:https://nextjs.org/docs/advanced-features/static-html-export
特别是,next build && next export
命令将创建直接通过Apache或Ngnix这样的HTTP托管站点所需的所有HTML和资产。内容将输出到可用作服务器根目录的out
目录。
请非常密切地注意通过这种方法不支持哪些特性。
https://stackoverflow.com/questions/59095604
复制相似问题