能否在 Github 上托管基于 angular.js 的静态博客?

50

我知道一个人可以通过Github Pages来托管基于Jekyll的静态网站/博客。那么,一个基于AngularJS的静态网站/博客能否做到同样的事情呢?

4个回答

92
你可以使用Angular,但是不能使用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)"

编辑: 如果您确实想要使这个方法工作,那么可以利用一些巧妙的技巧。这些技巧在这里详细说明。简而言之,您需要将index.html重命名为404.html,GitHub会在所有路由中提供它。


17
这个回答阻止了我提出问题。+1 :) - kentcdodds
如果您使用Service Worker会怎样? - frhd

38

1
将Charlie的评论融入你的答案中,可以获得额外的分数! - Petrus Theron
我用一般的回答回答了这个一般的问题。也许如果 OP 想要具体信息,他们会问更详细的问题。 - lucuma
是的!你可以在Github上托管一个AngularJS应用程序。太棒了。你甚至可以拥有自定义域名! - Bruno

12

在使用Jekyll和Angular时需要注意一个冲突。

Jekyll中包含的Liquid也使用{{ }}来评估表达式。为了更改Angular解释的表达式(以避免与Liquid发生冲突),请使用:

var myapp;
myApp = angular.module('myApp', []);

myApp.config([
  '$interpolateProvider', function($interpolateProvider) {
    return $interpolateProvider.startSymbol('{(').endSymbol(')}');
  }
]);

查看这篇博客文章


38
你可以通过在你的页面仓库根目录创建一个名为 .nojekyll 的文件,并将该文件推送到GitHub上来关闭Jekyll。 - Tyler

1

是的,你可以。我最近尝试了一下AngularJS/Typescript和github页面,并成功部署了网站。
由于AngularJS只是JavaScript,因此您实际上可以使用任何像样的Web服务器,例如github页面。 这里是演示
您可以在这里找到源代码。该存储库包含TypeScript源代码,您必须编译它以获得适当的JavaScript文件。然后,您基本上将此文件包含在index.html中,就完成了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接