如何对除索引页以外的所有页面使用 Ember

How to use Ember for all pages except the index page

我有一个ember项目,而且越来越重了。 我希望着陆页加载得更快,因此我想将其设为静态 HTML(不加载 ember js 文件)。 我想在 ember.

中拥有的所有其他页面

所以,我希望 site.com 为我的 HTML 静态页面(不是 ember)提供服务,但 网站.com/page1 站点。com/page2 服务 ember 个页面。

可以吗?

这绝对有可能,但实际方法将高度依赖于您的服务器基础架构。您应该能够将服务器配置为服务 non-Ember index.html 并为每个其他请求服务 Ember index.html

安装prember

ember install ember-cli-fastboot
ember install prember

ember-cli-build.js

let app = new EmberApp(defaults, {
  prember: {
    urls: [
      '/',
    ]
  }
});

配置您的网络服务器,它应该使用 _empty.html 来响应未知的 URL。

我是在 .htaccess 文件的帮助下完成的:

public/.htaccess中替换

RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]

RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /_empty.html [L]

疑难解答:

在更新之前我遇到了构建错误 ember-cli-moment-shim^3.8.0