可以在 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 的静态博客吗?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Github Pages 上托管交互式 R Markdown 文件?