EgorkZe
@EgorkZe
iOS (Swift), GoLang

Можно ли использовать GOlang для роутинга страниц Angular2?

Подскажите пожалуйста, например я написал небольшое веб приложение на Angular2 с несколькими страничками, все роуты реализованы внутри Angular2 так
import {Component} from 'angular2/core';
import {RouteConfig, ROUTER_DIRECTIVES, ROUTER_PROVIDERS} from 'angular2/router';
import {AuthComponent} from './auth.component';

@Component({
    selector: 'my-app',
    template: `
    <h1></h1>
    
    <router-outlet></router-outlet>
  `,
	
	directives: [ROUTER_DIRECTIVES],
	providers: [ ROUTER_PROVIDERS]
})

	@RouteConfig([
		{ path: '/auth', name: 'Auth', component: AuthComponent, useAsDefault: true }
	
	])

export class AppComponent { 
	
}


Вот и для того чтоб роуты заработали и страничка возвращалась когда я перехожу по ip или доменному имени я запускаю все это дело командой npm start, она включает в себя компиляцию TypeScript в JavaScript и запуск lite-server, который как раз и позволяет роутить страницы и чекать обновление кода. Я могу как то обойтись без lite-server и юзать свой GoLang бэкенд для того, чтоб странички в angular2 роутились и к бэкенду выполнялись запросы.

может как то например вот так
http.Handle("/", http.FileServer(http.Dir("./app/web/")))
    http.ListenAndServe(":8080", nil)

где /app/web/ папка в которой лежат мои компоненты и html шаблоны или что то в этом духе
Как это вообще реализовывается? по сути мне нужно как то заменить lite-server моим GoLang бэком.
  • Вопрос задан
  • 1332 просмотра
Решения вопроса 1
@Maxim_Samburskiy
Можно подключить роутинг на главной странице и использовать:

http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
    http.ServeFile(w, r, "index.html")
})
http.Handle("/assets/", http.StripPrefix("/assets/", http.FileServer(http.Dir("./path/to/assets"))))

Тогда все запросы будут приходить на index.html, где Вы сможете их обработать, а статика будет подгружаться из другой директории (assets)
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
DmitryVoronkov
@DmitryVoronkov
Python Developer
Можешь так:
python -m SimpleHTTPServer 8000
Или так:
php -S 127.0.0.1:8000
Js роутинг ни как не связан веб сервером.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы