在grunt文件中,livereload块看起来像这样:
livereload: {
options: {
open: true,
middleware: function(connect, options, middleware) {
var optBase = (typeof options.base === 'string') ? [options.base] : options.base;
return [
[require('connect-modrewrite')(['!(\\..+)$ / [L]'])].concat(
optBase.map(function(path) {
return connect.static(path);
})),
connect.static('.tmp'),
connect().use(
'/bower_components',
connect.static('./bower_components')
),
connect().use(
'/app/styles',
connect.static('./app/styles')
),
connect.static(appConfig.app)
];
}
}
},
添加:
[require('connect-modrewrite')(['!(\\..+)$ / [L]'])].concat(
optBase.map(function(path){ return connect.static(path); })),
确实用来为我工作启用html5模式,否则,我的路由不加载#!当我尝试通过浏览器重新加载时。
我在config中添加了基础href ='/'和html5Mode(true)。还有什么我可以尝试的吗?为什么它真的会停止工作?
注意:事实证明我的网址中有一个点,并且连接模式重写规则没有这样做。知道如何更改它并使其能够处理URL中的点吗?
答案 0 :(得分:2)
尝试在配置块中的根应用程序模块中添加此项。确保包含/ inject $ locationProvider。
$locationProvider
.html5Mode({
enabled: true,
requireBase: false
})
.hashPrefix('!');
答案 1 :(得分:1)
我认为点问题是一般问题的副作用。拥有相同的设置,或多或少。我只需重置$properties = gpresult /r
if (Select-String -Pattern "server1" -InputObject $properties) { $server="server1" }
if (Select-String -Pattern "server2" -InputObject $properties) {$server="server2" } $profilepath="\\$server\somepath$\$($env:USERNAME)\
中的html5Mode
,就像这样:
.config()
该应用仍然会在开发模式中为所有网址加上if (window.location.host == 'localhost:9000') {
$locationProvider.html5Mode(false);
$locationProvider.hashPrefix('');
} else {
$locationProvider.html5Mode(true);
}
作为前缀,从而使网址,链接和重新加载更加痛苦。通过将常规#/
更改为/urls
:
/#/urls
现在可以通过var isLocalHost = (location.hostname === "localhost" || location.hostname === "127.0.0.1");
angular.module('myApp').directive('debugLink', function($timeout) {
return {
restrict: 'A',
link: function(scope, element, attrs) {
$timeout(function() {
var href = element.attr('href');
if (href && isLocalHost && href.charAt(0) == '/') {
element.attr('href', '#'+href);
}
}, 100);
}
}
});
最后,我使用生产服务器上https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-configure-your-server-to-work-with-html5mode的<a href="/url" debug-link>link</a>
重定向
.htaccess
我在几个angularjs + grunt项目中使用这种方法。它可以防止livereload中断,即当我按 Ctrl - S 页面被刷新时,我可以在任何地方使用正确的URL。我想没有人对生产模式中的前缀或哈希感兴趣。