部署MEAN应用时,使用dist
文件夹是否错误?
到目前为止我已经采取的步骤:
ngApp
的简单工作MEAN应用。 Angular自动创建了一个文件夹dist/ngApp
。dist/ngApp
,然后直接部署文件,而无需web.config或任何其他内容。app-routing.module.ts
)。但是,刷新后,出现了404
错误。 app-routing.module.ts
中的部分代码:
const routes: Routes = [
{path: '', redirectTo:'/home', pathMatch:'full'},
{path: 'home', component: HomeComponent},
{path: 'videos', component: VideoCenterComponent}
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
F12
控制台显示也找不到https://asdjkna.azurewebsites.net/api/videos。这意味着不仅我的Angular路由有问题,我的Express路由也有问题。 /server.js
中的部分代码:
const api = require('./server/routes/api');
app.use('/api',api);
const port = process.env.PORT || 3000;
const app = express();
app.use(express.static(path.join(__dirname, 'dist/ngApp')));
app.get('*', (req, res) => {
res.sendFile(path.join(__dirname, 'dist/ngApp/index.html'));
});
./server/routes/api
中的部分代码:
const Video = require('../models/video');
// GET request
router.get('/videos', function(req, res){
console.log('GET request for all videos');
Video.find({})
.exec(function(err,videos)
{
if(err){
console.log("Error retrieving videos.");
}else {
res.json(videos);
}
});
});
直接部署dist/ngApp
文件夹也许是错误的?也许在我部署到Web App时,我的路由方式不正确?在localhost上进行测试没有这些问题。
我已完整记录了本教程系列,并在需要时can be accessed here做了说明。