При развертывании приложения MEAN неправильно использовать папку dist
?
Шаги, которые я предпринял до сих пор:
- Успешно создано простое работающее MEAN-приложение с именем
ngApp
с использованием серии учебников от Codevolution . Angular автоматически создал папку dist/ngApp
.
- Установленное расширение службы приложений Azure в VSCode.
- Щелкните правой кнопкой мыши, перейдите к
dist/ngApp
и затем разверните файлы напрямую, без web.config или чего-либо еще.
- ПРОБЛЕМА 1 : Навигация на https://asdjkna.azurewebsites.net/ в порядке (ссылка перенаправлена на https://asdjkna.azurewebsites.net/home, которую я намеревался использовать с помощью
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 { }
- ПРОБЛЕМА 2 : Снова перейдите к https://asdjkna.azurewebsites.net/. Нажмите на вкладку плейлиста на панели навигации. Консоль Chrome
F12
показывает, что https://asdjkna.azurewebsites.net/api/videos также не найден. Это означает, что не только моя угловая маршрутизация имеет проблемы, так и моя экспресс-маршрутизация.
Части кода от /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 не имеет ни одной из этих проблем.
Я сделал полные заметки из серии уроков, и можно получить здесь в случае необходимости.