Olá galera.
Uma dúvida que já me fez perder 2 dias de pesquisa e não acho a solução. Fiz o curso de AngularJS e nele o express.js e o main.js estão assim:
express.js
var express = require('express')
,app = express()
,bodyParser = require('body-parser')
,routes = require('../app/routes');
app.use(express.static('./public'));
app.use(bodyParser.urlencoded({extended: true}));
app.use(bodyParser.json());
routes(app);
module.exports = app;
main.js
angular.module("alurapic", ['minhasDiretivas', 'ngAnimate', 'ngRoute', 'meusServicos'])
.config(function($routeProvider, $locationProvider){
$locationProvider.html5Mode(true);
$routeProvider.when('/fotos', {
templateUrl: 'partials/principal.html',
controller: 'FotosController'
});
$routeProvider.when('/fotos/new', {
templateUrl: 'partials/foto.html',
controller: 'FotoController'
});
$routeProvider.when('/fotos/edit/:fotoId', {
templateUrl: 'partials/foto.html',
controller: 'FotoController'
});
$routeProvider.otherwise({redirectTo: '/fotos'});
});
E a aplicação alurapic atualiza a página normalmente após pressionar F5.
Eu estou criando uma aplicação igual implementando todos os scripts sozinho para testar os conhecimentos e no meu caso o express e o main js estão assim:
var express = require('express');
var app = express();
app.use(express.static('./public'));
module.exports = app;
angular.module('ouvidoria', ['ngRoute'])
.config(function($routeProvider, $locationProvider) {
$locationProvider.html5Mode(true);
//$httpProvider.interceptors.push('tokenInterceptor');
$routeProvider.when('/login', {
templateUrl: 'partials/login.html',
controller: 'LoginController'
});
$routeProvider.otherwise({
redirectTo: '/login'
});
});
Mas ao pressionar F5 recebo: Cannot GET /login
E no console: 404 (Not Found)
Eu sei que é por causa do html5mode que quando ativado ele reescreve as urls. Mas não consegui achar a solução. Alguém sabe por que isso acontece?