我正在尝试在Tomcat服务器上部署angular2 webapp。
使用ng build
命令,我一直在创建一个dist文件夹并将该文件夹上传到我的Tomcat。
每当我运行webApp时,我都会收到以下错误消息:无法加载资源:服务器响应状态为404()
这些资源是我的.js文件,它们是由ng build命令创建的。 (例如:main.bundle.js)
感觉他错误地映射它们是因为他在8080 / main.bundle.js上搜索它们而不是8080 / contextpath / main.bundle.js
这是我的index.html:`
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>DummyTitle</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<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="scripts.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>
` - 编辑 - 我找到了解决方案,我只是对index.html中的基本href进行了加/减。现在它正确加载.js。
然而现在出现了一个新问题。我的网址立即发生了变化。 一旦我进入网站,8080 / dist /更改为8080 / dist / login?returnUrl =%2F。如果我刷新页面,这就成了一个问题,我得到了404。
- 编辑2-- 问题已解决,代码中的某处我有一行将查询参数添加到我的URL。删除了这个并且它有效。 :)现在一切正常。
答案 0 :(得分:0)
感谢您的回答,我使用node.js / express遇到了同样的问题
虽然更改纠正了问题,但每次构建'my component时,生成的index.html都会返回初始/配置。
您是否知道我可以如何(或在哪里)更改此设置?
干杯
格雷格
serving @angular/cli component using express, path issue
- 作为解决方法,我发现:ng build --base-href /trinity-app/dist