我要修正我的角度JS应用程序的livereload。我使用yoeman UI路由器与HTML5推的状态。
I want to fix the livereload with my angular js app. I am using yoeman ui-router with html5 push state.
什么是一个必须做的?
推荐答案指数对于searchengines必须添加以下到< HEAD> 您的index.html的
The index For the searchengines you have to add the following to the <head> of your index.html
<meta name="fragment" content="!"> <base href="/">的应用在你app.js,你必须注入下面的依赖关系,并添加功能。
The app In your app.js you have to inject the following dependencies and add the functions.
angular .module('yourApp', [ 'ngAnimate', 'ngCookies', 'ngResource', 'ngSanitize', 'ui.router', ]) .config(function ($stateProvider, $urlRouterProvider, $locationProvider) { // HTML5 PUSH STATE $locationProvider.html5Mode(true).hashPrefix('!'); $urlRouterProvider.otherwise('/'); // STATES $stateProvider .state('home', { url: '/', templateUrl: 'views/home.html', controller: 'homeCtrl' }); });的middelware
这个问题的解决办法是适应的Connect-modrewrite中间件。
The solution to this problem is to adapt the connect-modrewrite middleware.
安装与您的控制台内的节点packetmanager中间件在yeomanfolder
Install the middleware with the node packetmanager within your console in your yeomanfolder
npm install connect-modrewrite然后调整Gruntfile.js
Then adapt the Gruntfile.js
var modRewrite = require('connect-modrewrite'); livereload: { options: { open: true, base: [ '.tmp', '<%= yeoman.app %>' ], middleware: function (connect, options) { var middlewares = []; middlewares.push(modRewrite(['^[^\\.]*$ /index.html [L]'])); //Matches everything that does not contain a '.' (period) options.base.forEach(function (base) { middlewares.push(connect.static(base)); }); middlewares.push( connect.static('.tmp'), connect().use( '/bower_components', connect.static('./bower_components') ) ); return middlewares; } } },现在用命令开始你的呼噜声
Now start your grunt with the command
grunt serve更多推荐
Livereload Html5的pushState的与AngularJS,ui.Router和自耕农
发布评论