【发布时间】:2013-05-13 15:24:30
【问题描述】:
我知道可以通过 Github 页面托管基于 Jekyl 的静态站点/博客。 可以对基于 AngularJS 的静态网站/博客做同样的事情吗?
【问题讨论】:
我知道可以通过 Github 页面托管基于 Jekyl 的静态站点/博客。 可以对基于 AngularJS 的静态网站/博客做同样的事情吗?
【问题讨论】:
可以,但不能使用 html5 模式(从 url 中删除 #)。如果您使用 html5 模式,则必须将所有请求重定向到根 url,因为它是一个单页应用程序。由于您不能在 GitHub 页面上使用服务器端代码,因此您不能这样做。所以,如果你不介意 url 中的 #,那就去吧。如果要使用html5模式,则需要在别处寻找托管。
来自 Angular 文档...
"Using [html5] mode requires URL rewriting on server side, basically you have to
rewrite all your links to entry point of your application (e.g. index.html)"
编辑: 如果你真的想的话,你可以利用一些聪明的技巧来完成这项工作。黑客详细概述了here。总之,您将 index.html 重命名为 404.html,github 将在所有路由中提供它
【讨论】:
【讨论】:
需要注意 Jekyll 和 Angular 之间的一个冲突。
Jekyll 中包含的 Liquid 也使用 {{ }} 来评估表达式。要更改 Angular 解释的表达式(因此它不会与 Liquid 冲突),请使用:
var myapp;
myApp = angular.module('myApp', []);
myApp.config([
'$interpolateProvider', function($interpolateProvider) {
return $interpolateProvider.startSymbol('{(').endSymbol(')}');
}
]);
【讨论】:
.nojekyll 的文件并将该文件推送到 GitHub。