可以在 Github 上托管基于 angular.js 的静态博客吗?

Posted

技术标签:

【中文标题】可以在 Github 上托管基于 angular.js 的静态博客吗?【英文标题】:Can one host an angular.js based static blog on Github? 【发布时间】:2013-05-13 15:24:30 【问题描述】:

我知道可以通过 Github 页面托管基于 Jekyl 的静态站点/博客。 可以对基于 AngularJS 的静态网站/博客做同样的事情吗?

【问题讨论】:

【参考方案1】:

可以,但不能使用 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 将在所有路由中提供它

【讨论】:

这个答案让我无法提问。 +1 :) 如果你使用 Service Worker 会怎样?【参考方案2】:

考虑到所有 Angular UI github 页面实际上都是带有演示的 Angular 应用程序,我会说是的:

http://angular-ui.github.io/

http://angular-ui.github.io/bootstrap/

【讨论】:

将 Charlie 的评论加入到您的答案中,以获得百万分! 我用一般性的答案回答了一般性问题。也许如果 OP 想要细节,他们会提出更详细的问题。 是的!你可以在 Github 上托管一个 AngularJS 应用程序。这很棒。您甚至可以拥有一个自定义域!【参考方案3】:

需要注意 Jekyll 和 Angular 之间的一个冲突。

Jekyll 中包含的 Liquid 也使用 来评估表达式。要更改 Angular 解释的表达式(因此它不会与 Liquid 冲突),请使用:

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

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

查看this blog post

【讨论】:

您可以turn off Jekyll 在您的页面存储库的根目录中创建一个名为 .nojekyll 的文件并将该文件推送到 GitHub。【参考方案4】:

是的,你可以。我最近玩过 AngularJS/Typescript 和 github 页面,并且能够部署该站点。 由于 AngularJS 只是 javascript,因此您实际上可以使用任何体面的网络服务器,例如github页面。 这是demo。 你可以找到源代码here。此存储库包含您必须编译的 typescript 源代码才能获得适当的 javascript 文件。然后你基本上把这个包含这个文件放到你的 index.html 中,你就完成了。

【讨论】:

以上是关于可以在 Github 上托管基于 angular.js 的静态博客吗?的主要内容,如果未能解决你的问题,请参考以下文章

在 Firebase 上托管 Angular 项目

在 github 上托管 Maven 存储库

是否可以在 Github Pages 上托管交互式 R Markdown 文件?

在github上托管自己的项目

在 tomcat 生产服务器上托管 angular7 应用程序时的 CORS [重复]

将本地项目放到GitHub上托管并展示