Ember - 在哪里放置公共网站

时间:2015-05-28 13:07:07

标签: heroku ember.js ember-cli

我正在整理我的Ember应用程序,我想弄清楚处理公共网站的最佳做法(//about/faq等)。理想情况下,Ember JS和大部分应用程序本身都无法加载。

有几种选择,但我想知道最佳做法。

选项1 - 应用程序的一部分

只需在ember-cli中创建公共页面模板。

优点:

  • 相同的资产管道
  • 整个网站的单次投放

缺点:

  • 您如何拥有两个基本模板?一个用于公共站点,一个用于应用程序本身。理想情况下,我可以为每个部分设置不同的导航条。一切都继承自application.hbs模板,但我不想在其中放置条件来处理两个导航栏。我也不想覆盖我应用中的每个其他网页,将其放在不同的模板下(/app/*)。
  • 整个应用程序将在用户第一次进入页面时加载(随着应用程序变大,速度会变慢)。

选项2 - 公共文件夹的一部分

/public文件夹中创建静态HTML。

优点:

  • 相同的资产管道
  • 整个网站的单次投放
  • 未加载公共页面的整个应用

缺点:

  • 您可以为每个页面编写完整的HTML。这不允许快速开发。
  • 没有模板系统。随着公共网站的发展,最好有一个模板,以便您可以轻松更改所有页面上的导航栏。
  • 由于ember-cli想要处理该网址,因此不确定如何处理/,但我希望它能够与公共网站分开。
  • 在您的public文件夹中添加了大量垃圾,因为您需要为好网址添加about/index.html

选项3 - 与ember-cli项目/ app

分开

创建一个nanoc站点或其他一些静态生成的站点,并将其发送给您的公共页面。

优点:

  • 为公共网站正确布局
  • 资产分离
  • 未加载公共页面的整个应用

缺点:

  • 需要弄清楚如何在同一个域上正确部署单独的应用程序(将ember-cli放在/a/下很容易,但如果我部署到heroku,我如何在同一个域上提供多个heroku应用程序? )。
  • 应如何处理/sign-up/sign-in?具有公共站点chrome的公共站点,或具有已注销状态的Web应用程序(不理想)。

2 个答案:

答案 0 :(得分:0)

我会先发表意见。关于您对两个基本模板的问题>你可以在路由器中破解它以准确显示你想要的东西。

以下是有关类似问题的链接:https://stackoverflow.com/a/14231712/4560056

答案 1 :(得分:0)

独立的。

使用.htacess文件或服务器设置的等效配置机制来控制应用程序何时负责提供内容以及何时不应该负责。