【问题标题】:How to share a session between Vue.js dev and Rails 4 backend?如何在 Vue.js 开发人员和 Rails 4 后端之间共享会话?
【发布时间】:2018-06-03 08:26:09
【问题描述】:

我正在使用与 Rails 4.2 后端共存的 Vue.js cli 应用程序。

这里的目标是使用现有会话。当我为生产模式编译 Vue.js 应用程序时,我可以在开发模式下运行 Rails 服务器,并且 Vue 应用程序从 public 目录正确地提供服务,并且会话工作,因为它们在同一个域上提供服务。

尝试像这样进行开发和调试非常困难,因为您必须在进行任何更改后编译 Vue 应用程序以进行生产测试,这也使得无法利用 Vue 开发工具进行调试。

如果我在开发模式下为 Vue 应用程序提供服务,这是通过 webpack 提供的,那么 Vue 应用程序和 Rails 应用程序是分开服务的,因此现在位于不同的域上,这导致没有会话共享,不得不尝试处理 CORS,等等……

【问题讨论】:

  • 不知道任何简单的方法,但是可以将 Vue.js 请求代理到 Webpack 源,例如使用 rails-reverse-proxy。不过我自己没试过。

标签: ruby-on-rails ruby session vue.js vuejs2


【解决方案1】:

文件config/index.js中的proxyTable中有一个选项。

通过将此选项设置为proxyTable: {"/": "http://localhost:3000"},我们能够通过本地 Rails 服务器将 webpack 根设置为代理

3000 是 Rails 开发服务器的默认端口,但如果您在其他端口上运行,则可能需要更改此端口。

【讨论】:

    【解决方案2】:

    如果可以的话,摆脱 webpacker。 Vue 可以用from cdn 挺好的。 当在 rails 模板中实例化 vue 应用程序时,使用#{@model.to_json} 可以非常轻松地传递数据。

    Vue 组件可以使用 x-template 语法编写,可以在 rails 模板或资产管道中。

    【讨论】:

    • 我们在构建过程中使用了 Webpack 和 vue-cli,没有使用 Webpacker gem。
    猜你喜欢
    • 2018-08-29
    • 2015-03-12
    • 2012-03-27
    • 1970-01-01
    • 2015-08-14
    • 1970-01-01
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多