Rails:如何将静态内容和应用程序分开,同时保持两者之间的连接?
好吧,这个问题可能听起来有点奇怪,让我尝试解释一下我在这里想要实现的目标。
我需要: - 一些主要是静态的页面:主页、关于我们等,通常的嫌疑人 - 一个完整的复杂 Rails Web 应用程序
作为系统核心的 Web 应用程序将包含很多内容,包括用户身份验证(顺便说一下)。该应用程序将有一个标准的导航菜单,其中可能的操作会根据用户状态(是否登录、是否为管理员等)而变化。
到目前为止,没有任何异常。
但是,由于不相关的原因,我必须将整个系统的入口点作为将托管在另一台服务器(ergh)上的主页。
那么现在,由于我的主页和其他静态页面将位于服务器 A 上,而所有应用程序将位于服务器 B 上,我如何保持两者之间的联系?
含义:即使在静态页面上也保持导航菜单动态,在静态服务器上有登录/注册表单但在“真实”应用程序服务器上注册帐户? 他们可以共享相同的数据库,那里没有 pb。
有关如何执行此操作的任何指示?我真的不想在静态网站上放置一些 iframe...
谢谢!
亚历克斯
Ok this question might sound a bit weird, let me try to explain what I am trying to achieve here.
I need:
- some mostly static pages: home page, about us, etc. the usual suspects
- a full complex rails web app
The web app being the heart of the system will have a lot of stuff, including user authentication (with devise by the way). The application will have a standard navigation menu with possible actions changing depending on user status (login or not, admin or not, etc).
Until now, nothing out of the ordinary.
However for unrelated reason, I MUST have the entry point of the whole system be the home page that will be hosted on another server (ergh).
So now, since my home page and other static pages will be on server A and all the application will be on server B how can I maintain contact between the 2 ?
Meaning: keep my navigation menu dynamic even on my static pages, have a sign-in / sign-up form on my static server but registering an account on the "real" application server ?
They can share the same database, no pb there.
Any pointers on how to do this ? I would really like not to put some iframes on the static site...
Thanks !
Alex
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
对于登录/注册的内容,您可以将表单操作转到 B 并重定向到 A。
要在菜单中显示正确的内容,您可以进行 jsonp 调用(如 Chris 所说)来获取整个标题或特定部分动态的标题。
如果您只是想包含用户名,您也可以简单地将他们的名字存储在 cookie 中,然后使用 javascript 将其显示在标头中。
如果没有 cookie,则显示登录/注册的链接。
编辑:对于 jsonp 调用,请查看 javascript 框架以进行客户端调用,我个人使用 jQuery http://api.jquery.com/jQuery.ajax (并查看 jsonp 选项)。
For the signin/signup stuff, you can have your forms action going to B and redirecting to A.
To display the right stuff in the menus you can make a jsonp call(as Chris said) to fetch either the entire header or specific parts of the header that are dynamic.
If you are just looking to include the users name, you can also simply store their name in a cookie and then use javascript to display it in the header.
If there's no cookie display a link to login/signup.
edit: For the jsonp calls take a look at a javascript framework to make the call client side, I personally use jQuery http://api.jquery.com/jQuery.ajax (and look at the jsonp options).
大声思考...
您可以在静态代码中使用 javascript/AJAX 动态构建菜单吗?也许可以查询服务器 B(通过 jsonp)来确定选项...
它将做一些“时髦”(tm)的事情来跟踪是否存在用户会话...并将它们链接...
Thinking out loud...
Can you dynamically build the menus using javascript/AJAX in the static code? Perhaps that could query server B (via jsonp) to determine the options...
Its going to have do some "funky" (tm) stuff to track whether there is a user session or not... and linking them...