i'm using ui-router on angular app. works fine on local app gulp serve
on server when refresh page home, got infinite loop. (ex: /dashboard/my_project/view).
my .htaccess follows doc
here .htaccess
<ifmodule mod_rewrite.c> options +followsymlinks rewriteengine on # don't rewrite files or directories rewritecond %{request_filename} -f [or] rewritecond %{request_filename} -d rewriterule ^ - [l] # rewrite else index.html allow html5 state links rewriterule ^ index.html [l] </ifmodule>
index.js
.config(['$stateprovider', '$urlrouterprovider', '$locationprovider', function ($stateprovider, $urlrouterprovider, $locationprovider) { $locationprovider.html5mode(true); $stateprovider .state('home', {/* ... */}) .state('dashboard', { url: '/dashboard/:projectslug', abstract: true, controller: 'dashboardctrl', resolve: { project: function(projectservice, $stateparams, $state) { return projectservice.getproject($stateparams.projectslug) .then(function(data) { return data; }, function() { return $state.go('error'); }) ; }, }, templateurl: '/app/components/dashboard/dashboard.html', }) .state('dashboard.view', { url: '/view', templateprovider: function($http, $stateparams) { var projectslug = $stateparams.projectslug; var templatename = '/app/projects/' + projectslug + '/' + projectslug + '.html'; return $http .get(templatename) .then(function(tpl){ return tpl.data; }, function () { // template not found /* .. */ }) ; }, controllerprovider: function($stateparams, helperservice) { var controllername = helperservice.controllernamebyproject($stateparams.projectslug); return controllername; }, }) .state('error', { url: 'error', resolve: { errorobj: function() { return this.self.error; } }, templateurl: '/app/components/error/error.html', }); $urlrouterprovider.otherwise('/'); }])
Comments
Post a Comment