ruby-on-rails - 在部署上下文中使用 "createHashHistory"与 "createBrowserHistory"的困境

标签 ruby-on-rails nginx reactjs reactjs-flux react-router

我正在使用“gulp-connect”作为开发服务器,并且我正在尝试实现react router 1.0.0-rc1。

目前我正在使用“createHashHistory”,它会在 URL 中添加类似以下内容的垃圾:?_k=ckuvup,这是故意的,如 document 中定义的那样。 。我对此很满意,直到我将查询字符串与 URL 一起发送,并且我的链接看起来像这样,垃圾邮件附加在域名后面而不是末尾:

http://localhost:8080/#/?_k=y754gg/jobs?latitude=27.686784000000003&longitude=85.2690875&query_location=Liverpool, United Kingdom&query=fjdkf

预期 URL(类似这样):

http://localhost:8080/#/jobs?latitude=27.686784000000003&longitude=85.2690875&query_location=Liverpool, United Kingdom&query=fjdkf/?_k=y754gg

我本可以使用“createBrowserHistory”,它有一个非常清晰的 URL,但问题是: 1)服务器配置。提供的示例仅显示 Express 中的操作方法。我计划在生产中使用 nginx,并在开发中使用 gulp-connect。由于我找不到任何有关如何在此服务器中执行操作的引用,因此我不得不选择“createBrowserHistory”。

2) 我的后端在 Rails 上,如果我通过“public”文件夹中的前端,带有 # 的 URL 应该分隔客户端和服务器路由。但我一直认为必须有一种方法可以在 nginx 中使用 createBrowserHistory 进行一些配置。

这个问题的首要任务是在最后附加 key 的第一部分。任何有关如何在不同服务器中完成配置的引用都将受到赞赏。

最佳答案

您应该能够在创建历史记录时通过设置 queryKey: false 来禁用 URL 哈希:

var history = History.createHashHistory({
  queryKey: false
});

关于ruby-on-rails - 在部署上下文中使用 "createHashHistory"与 "createBrowserHistory"的困境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32765779/

相关文章:

ruby-on-rails - 如何在 Rails 中使用装饰器

ruby-on-rails - 访问 ruby​​ 哈希的元素

node.js - 使用 nginx 的 Websocket 代理不适用于 tomcat。

amazon-web-services - 如何增加 Elastic Beanstalk 中的 client_max_body_size

css - 如何使用 React 更改选定表格行的背景颜色

javascript - React-Router 只有一个 child

javascript - react-native-draggable-flatlist 在 ScrollView 中不起作用

ruby-on-rails - 如何使用基于多模式的应用程序 Rails 设置延迟作业。?

ruby-on-rails - 多台服务器还是一台服务器中的所有内容?

python - uwsgi_params 文件应该放在哪里,它的扩展名是什么?