【发布时间】:2018-04-30 16:05:30
【问题描述】:
我在尝试部署我的 Angular 5.1.2 应用程序时遇到问题,基本上它在本地运行良好,但它在我的服务器上显示一个空白页面,出现 404 错误,例如
加载脚本元素失败,源是...
对于像 inline.js、polyfills.js、scripts.js、main.js ...
我认为我在路径上做错了什么,知道如何解决这个问题吗?
Dockerfile
FROM node:boron
# Create app directory
WORKDIR /usr/app
# Install app dependencies
COPY package.json .
RUN npm install --quiet
# Bundle app source
COPY . .
EXPOSE 4200
CMD [ "npm", "build" ]
CMD [ "npm", "start" ]
package.json
{
"name": "inspinia",
"version": "2.7.1",
"scripts": {
"ng": "ng",
"start": "ng serve --prod -H 0.0.0.0 --live-reload false",
"build": "ng build --prod --build-optimizer",
"test": "ng test",
"lint": "ng lint",
"e2e": "ng e2e"
},
"private": true,
"dependencies": {
"@agm/core": "^1.0.0-beta.2",
"@angular/animations": "^5.1.2",
"@angular/common": "^5.1.2",
"@angular/compiler": "^5.1.2",
"@angular/core": "^5.1.2",
"@angular/forms": "^5.1.2",
"@angular/http": "^5.1.2",
"@angular/platform-browser": "^5.1.2",
"@angular/platform-browser-dynamic": "^5.1.2",
"@angular/platform-server": "^5.1.2",
"@angular/router": "^5.1.2",
"@ng-bootstrap/ng-bootstrap": "^1.0.0-beta.8",
"angular2-datatable": "^0.6.0",
"angular2-in-memory-web-api": "^0.0.21",
"angular2-jwt": "^0.2.3",
"animate.css": "^3.5.2",
"bootstrap": "^3.3.7",
"chart.js": "^2.7.1",
"core-js": "^2.5.3",
"font-awesome": "^4.7.0",
"jquery": "^3.1.0",
"jquery-slimscroll": "^1.3.8",
"jquery-sparkline": "^2.4.0",
"jvectormap": "^2.0.4",
"metismenu": "^2.5.0",
"ng2-charts": "^1.6.0",
"ngx-bootstrap": "^2.0.3",
"peity": "^3.2.1",
"rxjs": "^5.5.6",
"zone.js": "^0.8.18",
"typescript": "2.6.2"
},
"devDependencies": {
"@angular/cli": "^1.7.3",
"@angular/compiler-cli": "^5.1.2",
"@types/jasmine": "2.8.2",
"@types/node": "^8.5.2",
"codelyzer": "^4.0.2",
"jasmine-core": "^2.8.0",
"jasmine-spec-reporter": "4.2.1",
"karma": "^2.0.0",
"karma-chrome-launcher": "^2.2.0",
"karma-cli": "^1.0.1",
"karma-coverage-istanbul-reporter": "^1.3.3",
"karma-jasmine": "^1.1.1",
"karma-jasmine-html-reporter": "^0.2.2",
"protractor": "^5.2.2",
"ts-node": "^4.1.0",
"tslint": "^5.8.0"
}
}
我的 nginx 配置的一部分
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name url www.url;
location / {
proxy_pass http://localhost:4200/;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
try_files $uri $uri/ /index.html =404;
}
root /var/www/iothings-app;
}
我运行:
docker build -t things-app .
docker run --name iothings-app -p 0.0.0.0:4200:4200 -d things-app
【问题讨论】:
-
--base-href=/usr/app表示您的应用的 url 是http://url/usr/app。我不认为会是这样吗? -
所以你建议改成
--base-href=/var/www/iothings-app这是我的代码吗? -
不,我只是说 base-href 设置是您应用的公共路径。您想为您的应用使用哪个网址?只是
http://url,对吧?如果是这样,您不需要 base-href -
我确实在尝试不使用此参数,谢谢。
-
去掉这个参数还是一样的错误:/
标签: angular docker nginx angular5