如何在 Azure linux 网络应用程序上托管 angular
How to host an angular on Azure linux web app
我有这个 Angular 应用程序,我正尝试在 Azure 上使用 Linux 网络应用程序托管。
部署后,我无法加载网站,经过一番研究,我发现我需要添加一个 index.js 文件 ()
这解决了我无法加载我的网站的问题。但它没有解决 angular 路由问题。如果我导航到 angular 路由并点击刷新,页面不会重定向到 index.html,我会收到 404 响应。 (参见 http://ecominas-website-qas.azurewebsites.net)
这是我的index.js
var express = require('express');
var server = express();
var options = {
index: 'index.html'
};
server.use('/', express.static('/home/site/wwwroot', options));
server.listen(process.env.PORT);
我也曾尝试按照此处 中的说明添加 web.config,但这不会加载 index.html 页面,而是显示默认的 "everything is working but no app found" 页面。
我怎样才能让 angular 路由正常工作?
谢谢
所以,我终于设法让它工作了。经过几天的研究和try/error,这是index.js,供以后参考
var express = require('express');
var path = require('path');
var server = express();
var options = {
index: 'index.html',
redirect: true,
};
server.use(express.static('/home/site/wwwroot', options));
const allowedExt = [
'.js',
'.ico',
'.css',
'.png',
'.jpg',
'.woff2',
'.woff',
'.ttf',
'.svg',
];
server.get('*', (req, res) => {
if (allowedExt.filter(ext => req.url.indexOf(ext) > 0).length > 0) {
res.sendFile(path.resolve(req.url));
} else {
res.sendFile(path.resolve('index.html'));
}
});
server.listen(process.env.PORT);
我有这个 Angular 应用程序,我正尝试在 Azure 上使用 Linux 网络应用程序托管。
部署后,我无法加载网站,经过一番研究,我发现我需要添加一个 index.js 文件 (
这解决了我无法加载我的网站的问题。但它没有解决 angular 路由问题。如果我导航到 angular 路由并点击刷新,页面不会重定向到 index.html,我会收到 404 响应。 (参见 http://ecominas-website-qas.azurewebsites.net)
这是我的index.js
var express = require('express');
var server = express();
var options = {
index: 'index.html'
};
server.use('/', express.static('/home/site/wwwroot', options));
server.listen(process.env.PORT);
我也曾尝试按照此处
我怎样才能让 angular 路由正常工作?
谢谢
所以,我终于设法让它工作了。经过几天的研究和try/error,这是index.js,供以后参考
var express = require('express');
var path = require('path');
var server = express();
var options = {
index: 'index.html',
redirect: true,
};
server.use(express.static('/home/site/wwwroot', options));
const allowedExt = [
'.js',
'.ico',
'.css',
'.png',
'.jpg',
'.woff2',
'.woff',
'.ttf',
'.svg',
];
server.get('*', (req, res) => {
if (allowedExt.filter(ext => req.url.indexOf(ext) > 0).length > 0) {
res.sendFile(path.resolve(req.url));
} else {
res.sendFile(path.resolve('index.html'));
}
});
server.listen(process.env.PORT);