【问题标题】:Serving static html outside Angular4在Angular4之外提供静态html
【发布时间】:2017-04-20 12:45:19
【问题描述】:

我是 Angular 4/Angular 2 的初学者。我正在构建一个由

组成的应用程序

1) 静态 html 文件(aboutus.html、pricing.html、contact us.html 等),以及对应的 css、js 文件 2) 功能复杂的单页应用

第一部分完全不需要 Angular,因为它是完全静态的。登录后,用户来到#2。从我经历的 Angular 教程来看,我似乎需要将 #1 和 #2 组合在一起,并且仍然必须从 #1 创建组件等,我觉得这是不必要的。

有没有办法,我可以构建这个项目,以便我可以按原样使用静态 html 并仅将 Angular 用于动态单页应用程序?任何有用的链接或示例将不胜感激。

【问题讨论】:

  • 为什么你认为你不能做你想做的事?
  • 我经历的教程似乎向我暗示了这一点,因为一切都是从 index.html 开始的,所有的路线都在那里。我不知道该怎么做。
  • 不能使用路由器集成静态html页面,但仍然可以使用普通的html链接。无需将包含 Angular 应用程序的文件命名为index.html
  • @GünterZöchbauer - 基本上,我将 Angular 文件重命名为 app.html 并将 index.html 设为静态文件,它的工作原理就像魅力一样!
  • 有理由不这样做。如果您认为用户会在静态页面和应用之间来回切换,那么您不应该这样做,因为应用在每次返回时都需要重新加载。

标签: javascript html angular angular2-routing


【解决方案1】:

如果您想使用ng serve 在本地提供静态文件,您需要将它们添加到您的资产文件夹或添加到资产配置中。见https://github.com/angular/angular-cli/issues/5029

【讨论】:

    【解决方案2】:

    您可以将静态 html 文件放入 /assets/ 文件夹。

    例如,如果您将 aboutus.html 文件放入文件夹 /assets/static/,则可以链接到 http://localhost/assets/static/aboutus.html

    【讨论】:

      【解决方案3】:

      您不能使用路由器来集成静态 html 页面,但您仍然可以使用普通的 HTML 链接。 无需命名包含 Angular 应用程序 index.html 的文件

      【讨论】:

        【解决方案4】:

        在apps 下的assets 键中,您可以包含任何您希望angular-cli 将其视为静态的目录。例如,您可以声明一个名为 static 的文件夹,并从那里提供静态页面。

        对于 v6 应用程序,assets 位于 browser 下:

        https://github.com/angular/angular-cli/blob/v6.0.0-rc.8/packages/%40angular/cli/lib/config/schema.json#L521

        【讨论】:

        • 有了静态 HTML,我可以使用相同的 css 样式吗?
        • 简单地将文件放在资产文件夹下对我不起作用,但从 angular.json 配置它们。此答案还允许将静态内容放在资产文件夹之外。
        猜你喜欢
        • 2015-06-19
        • 2015-08-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-29
        • 2016-03-29
        • 1970-01-01
        相关资源
        最近更新 更多