【问题标题】:Run Vue.js and Laravel on the same server (same port)在同一台服务器(相同端口)上运行 Vue.js 和 Laravel
【发布时间】:2018-06-21 14:29:41
【问题描述】:

我正在开发一个使用 Laravel 作为后端和 Vue.js 2 作为前端的网站。现在每次我想运行我的网站时,我都必须使用 2 个命令:

php artisan serve

这将在端口 8000 上运行 laravel 服务器

npm run dev

这将在端口 8080 上运行 vue.js 服务器

我可以只用一个命令在同一台服务器(同一端口)上运行它们吗??

【问题讨论】:

  • 除非您将 vue 代码紧密耦合到 laravel 中并使用 watcher 来重建代码,否则不会。如果您将 Laravel 用作严格的 API,那么这是不可能的。
  • 不,每个服务器需要两个不同的端口。但是,如果您将它用于 Laravel 应用程序,为什么需要为 vue.js 运行服务器?

标签: php laravel vue.js vuejs2


【解决方案1】:

如果您使用包含 Vue.js 的 Laravel 应用程序,则无需运行 npm run dev

在您的情况下,您似乎有一个分离的前端和后端。在这种情况下,您实际上无法选择托管 2 个不同的端口或主机名。

如果您使用不同的域,您可以使用相同的端口。例如,您可以使用 mydomain.com 作为前端,使用 api.mydomain.com 作为后端/api。

假设你有一个 webpack 前端项目,你可以做npm run build,它会将你所有的文件编译成 dist 文件夹中的静态 html 文件。然后,您只需将主机配置文件指向此文件夹即可。

【讨论】:

  • 我明白了。感谢您的帮助!
  • 包括在内是什么意思?我在与 laravel 项目相同的文件夹中有 vue 应用程序,但仍在运行 2 个服务器 - npm run serve 和用于 laravel 的 nginx。
  • 如果我没记错的话,在撰写本文时,Laravel 将通过与 Laravel 相同的服务器提供资产。这些资产仍将使用 laravel-mix(webpack 包装器)构建,但通过 Laravel 使用包含构建资产(不是 SPA)的多个 Laravel 刀片页面提供服务。我认为这种方法可能已经改变,或者在 laravel 生态系统中可能已经出现了其他选择。在您的情况下,如果您运行两个单独的服务器,这意味着您有一个当时 Laravel 没有提供的 SPA。
猜你喜欢
  • 2016-12-17
  • 1970-01-01
  • 2015-06-26
  • 1970-01-01
  • 2013-12-18
  • 1970-01-01
  • 2021-02-11
  • 2011-04-21
  • 2012-07-26
相关资源
最近更新 更多