Gostaria de saber se o node.js fornecido já veio com a opção html5Mode ativada, pois não conseguir acessar as partials sem hash '#' no caminho. Ex: http://localhost:3000/#/fotos/
Gostaria de saber se o node.js fornecido já veio com a opção html5Mode ativada, pois não conseguir acessar as partials sem hash '#' no caminho. Ex: http://localhost:3000/#/fotos/
Marcelo, não vem ativado... tem que habilitar nas routes incluindo as seguintes linhas no /routes/index.js (dentro do module.exports
)
app.all('/*', function(req, res) {
res.sendFile(path.resolve('public/index.html'));
});
No curso de Angular 1.X o servidor disponibilizado já esta preparado para lidar com o HTML5MODE sim. Talvez o Thiago tenha se confundindo com outro curso ( do de MEAN, que não vem habilitado).
Se não funcionou no seu projeto algum erro tem. Compartilhe o código do seu main.js
e do index.html
.
index.html
<!DOCTYPE html>
<html lang="pt-br" ng-app="alurapic">
<head>
<base href="/">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<title>Alurapic</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<link rel="stylesheet" href="css/efeitos.css">
<script src="js/lib/angular.min.js"></script>
<script src="js/lib/angular-animate.min.js"></script>
<script src="js/lib/angular-route.min.js"></script>
<script src="js/main.js"></script>
<script src="js/controllers/fotos-controller.js"></script>
<script src="js/directives/minhas-diretivas.js"></script>
</head>
<body>
<div class="container">
<ng-view></ng-view>
</div>
</body>
</html>
//main.js
// Criando novo módulo alurapic e adicionando diretivas em seguida
angular.module('alurapic', ['minhasDiretivas', 'ngAnimate','ngRoute'])
.config(function($routeProvider) {
//Possibilita remoção do hash # para definição de rotas, deve ser ativada no servidor
$locationProvider.html5Mode(true);
$routeProvider.when('/fotos/', {
templateUrl: 'partials/principal.html',
controller: 'FotosController'
});
$routeProvider.when('/fotos/new', {
templateUrl: 'partials/new.html',
controller: 'FotosController'
});
});
Ficou faltando solicitar ao AngularJs a injeção do $locationProvider. Falha minha....
Obrigado.
Tranquilo Marcelo! Tipo, sempre que tiver algo de estranho, dá uma olhada no console do Chrome para ver se não tem nenhuma mensagem de erro.
Abração!