Angular 2+ Build应用程序

问题描述 投票:2回答:5

我创建了一个有角度的2+前端应用程序,我试图在我公司的sharepoint网站上运行。但是,当我构建我的项目并创建dist文件夹时,它将不允许我获取index.html和.js文件,只需将它们放在共享驱动器中即可启动应用程序。我需要一些帮助。是否可能在构建之后启动没有Web服务器的应用程序?基本上只需启动index.html并使其工作?

我知道它与路由和基本href有关

angular chrome error

angular deployment
5个回答
1
投票

我找到了一个简单的解决方案,所以这里是

EDIT:

有一个npm包"http-server",可以让你轻松地在本地运行http服务器。以下是如何安装和使用它:

  1. 全局安装http-server npm install -g http-server
  2. 要在http://localhost:4201上的dist文件夹中运行您的构建,请运行: http-server dist -a 127.0.0.1 -p 4201

您也可以使用XAMPP,但这远远超出了您的需求。但是,如果您不想使用npm软件包,还有一些方法可以运行这个Gist中描述的Windows或MacOS板载工具的Web服务器

Alternative with GitHub Pages

我也有同样的问题,无法解决它,即使在搜索stackoverflow(让我诚实......)分钟后。我找到了一些解决方案,但我无法让它运行起来。我所做的是使用GitHub Pages(您也可以使用GitLab Pages创建私有存储库)。

  1. 建立 使用GitHub页面的base-href构建您的应用程序 ng build --prod --base-href "https://USER_NAME.github.io/REPOSITORY/"
  2. 推送到GitHub 将您的构建推送到GitHub作为gh_pages分支。如果你不熟悉Git,你可以使用非常容易使用的GitHub Desktop app
  3. 设置GitHub页面 得到https://github.com/USER_NAME/REPOSITORY/settings并设置您上传页面的分支(在我们的案例中为gh_pages)作为GitHub Pages的来源

使用Travis-CI可以做更多的事情。每次将更新推送到存储库并将其推送到GitHub页面时,Travis-CI都可以构建您的项目。 GitLab甚至有自己的持续集成。


0
投票
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Emulator</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>

0
投票

很好的建议,但仍然没有爱...仍然无法在控制台中加载资源。


0
投票

尝试更改index.html而不是base href =“/”添加index.html的文件夹名称,不要忘记结尾“/”:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Emulator</title>
  <base href="/<BaseFolder>/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>

0
投票
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Emulator</title>
  <base href="./././">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
</head>
<body>
  <app-root></app-root>
<script type="text/javascript" src="inline.bundle.js"></script><script type="text/javascript" src="polyfills.bundle.js"></script><script type="text/javascript" src="styles.bundle.js"></script><script type="text/javascript" src="vendor.bundle.js"></script><script type="text/javascript" src="main.bundle.js"></script></body>
</html>

我很欣赏这些想法。我能够将基础href更高一点,以便现在可以识别.js文件,但现在在控制台中得到一个不同的错误加载......似乎与路由有关。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.