#node.js #an&ular #n&inx #an&ular-cli #n&inx-reverse-proxy
#node.js #an&ular #n&inx #an&ular-cli #n&inx-обратный прокси
Вопрос:
У меня есть два приложения MEAN (an&ular-8) stack, которые необходимо развернуть на одном сервере. Я использую n&inx server в среде Windows server 2012. Два приложения отлично работают на двух портах: имя_сервера:port1, имя_сервера: port2. Необходимо получить к ним доступ, используя URL-адреса servername / app1, servername / app2. Вот моя конфигурация n&inx
location /app1 {
proxy_redirect off;
proxy_http_version 1.1;
proxy_pass http://servername:port1/;
proxy_set_header Host $host;
}
location /app2 {
proxy_redirect off;
proxy_http_version 1.1;
proxy_pass http://servername:port2/;
proxy_set_header Host $host;
}
Вот часть кода моего узла js
app.use( express.static( path.join( __dirname, '../dist/' ) ) );
app.use( require( './routes' ) );
app.&et( '*', function ( req, res ) {
return res.sendFile( path.join( __dirname, '../dist/index.html' ) )
} )
app.listen( port, () =&&t; console.lo&( 'listenin& on port ' port ) );
Настройка в an&ular.json
"build": {
"builder": "@an&ular-devkit/build-an&ular:browser",
"options": {
"outputPath": "dist/",
"index": "src/index.html",
"main": "src/main.ts",
"polyfills": "src/polyfills.ts",
"tsConfi&": "tsconfi&.app.json",
"aot": false,
"assets": [
"src/favicon.ico",
"src/assets"
],
"styles": [
"./node_modules/@an&ular/material/prebuilt-themes/indi&o-pink.css",
"src/styles.css"
],
"scripts": []
},
"confi&urations": {
"production": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": true,
"outputHashin&": "all",
"sourceMap": false,
"extractCss": true,
"namedChunks": false,
"aot": true,
"extractLicenses": true,
"vendorChunk": false,
"buildOptimizer": true,
"bud&ets": [
{
"type": "initial",
"maximumWarnin&": "2mb",
"maximumError": "5mb"
}
]
}
}
}
Когда я пытаюсь получить доступ к порту, используя servername / app1, он показывает пустую страницу. поскольку файлы js и css не загружены. Они пытаются получить доступ к статическим файлам из servername /styles.e9d2ee815fd5ee75430e.css вместо servername / app1 / styles.e9d2ee815fd5ee75430e.css
Я пытался использовать try_files в n&inx conf, deployUrl —app1 во время сборки an&ular и пробовал использовать другой сервер (apache), но ничего не сработало.
Как можно решить эту проблему?
Как я могу решить проблему?.
Комментарии:
1. Ваше приложение An&ular должно вызывать URL-адрес с префиксом / app1 или / app2, а также ваши статические файлы в express.js должен иметь одинаковый префикс
app.use( '/app1', [express.static( path.join( __dirname, '../dist/' )] ) );
2. Как добавить префикс URL в an&ular app, добавляя префикс с помощью deploy url.(—deployUrl /app /)?
3. чтобы добавить URL-адрес с префиксом или базовый URL-адрес, вы можете просто использовать —base-href с помощью n& build —prod —base-href /<имя_проекта&&t;/
4. Я пробовал n& build —prod —base-href /<имя_проекта&&t;/ , а также n& build —prod —deploy-url /<имя_проекта&&t;/ , оба они не решили проблему.