所以目前我已经构建了一个使用 Vue.js 和 PHP 的应用程序。PHP 是我的后端并使用 mysql 数据库。
我在我的本地机器(Mac)上运行它。当我运行我的 vue.js 端时,我使用命令 npm run dev 这会启动一个网络服务器,我通过访问 localhost:8080 来查看它。
然后对于 PHP,我使用 MAMP 启动另一个 Web 服务器。这将运行 Apache 和 Mysql。要访问它们,它们存储在 localhost:8888。
我发布并从 vue.js 端到 PHP 端获取请求。我可以让它工作的唯一方法是使用名为的 chrome 扩展:允许控制允许原点。否则我会收到一个跨源错误,他们将无法通信。
因此,有没有一种方法可以在同一个网络服务器上运行两者?我不确定如何
由于您想在一台服务器上部署 Vue.js 应用程序和 PHP,因此您有多种选择。
让我们假设您的 PHP 应用程序只是一个 API,所以有人可能会争辩说您可以将它托管在类似的东西上api.example.org并调用该域。这将需要您添加header("Access-Control-Allow-Origin: THE_FRONTEND_DOMAIN");-header("Access-Control-Allow-Origin: *");如果您不想让整个互联网都可以访问这些端点,请不要在生产环境中使用。设置完成后,您现在可以托管您的 Vue.js 应用程序www.example.org并执行对api.example.org.
PHP: api.example.org
Vue: www.example.org
Run Code Online (Sandbox Code Playgroud)
如果您不想要两个不同的域,您可以为您的 API 保留一个路由。这将允许您在同一域中同时托管 PHP 和 Vue.js。所以基本上让我们假设我们想让我们的 PHP 应用程序可用,www.example.org/api/我们要做的就是在那个级别上传我们的 PHP 文件。在那里上传我们的 API 后,我们必须在根级别上传 Vue.js 并相应地配置我们的 Web 服务器(Nginx、Apache),这样它就不会重写/api/url。
PHP: www.example.org/api/
Vue: www.example.org
Run Code Online (Sandbox Code Playgroud)