Angularjs 使用htm5Mode的stateProvider无法获取错误

Angularjs 使用htm5Mode的stateProvider无法获取错误,angularjs,connect-modrewrite,Angularjs,Connect Modrewrite,我正在将stateProvider与$locationProvider.html5模式一起使用: // Redirect any unmatched url $urlRouterProvider.otherwise("/cool"); $stateProvider // Dashboard .state('cool', { url: "/cool", templateUrl: "view

我正在将stateProvider与$locationProvider.html5模式一起使用:

    // Redirect any unmatched url
    $urlRouterProvider.otherwise("/cool");  

    $stateProvider
        // Dashboard
        .state('cool', {
            url: "/cool",
            templateUrl: "views/cool.html"
        });

     $locationProvider.html5Mode(true);
但是当我
http://localhost:8080/cool
我将获得
无法获得/cool
错误<代码>http://localhost:8080/和
http://localhost:8080/#/cool
工作正常


经过一些研究,我发现问题在于grunt connect。因此,我添加了modRoute以将所有url路由到index.html:

livereload: {
        options: {
          open: true,
          middleware: function (connect) {
            return [
              modRewrite([
                '!\\.\\w+$ /'
              ]),

但现在的问题是每个url都喜欢。

首先,确保你的头脑中有“base”标记

<base href="/">

然后确保你的“/酷”-页面与你的“/”服务相同。如果没有,服务器将发回404(如预期的那样)。这必须适用于所有“子页面”


若要测试是否存在这种情况,请使用href创建指向“/cool”的链接,angular应使用
pushState
“内部”处理此问题,这与仅“浏览”该页面不同。这意味着,当您单击链接时,页面将按预期运行,但如果重新加载(CTRL+R),您将收到错误。

首先,确保您的头部有“base”标记

<base href="/">

然后确保你的“/酷”-页面与你的“/”服务相同。如果没有,服务器将发回404(如预期的那样)。这必须适用于所有“子页面”


若要测试是否存在这种情况,请使用href创建指向“/cool”的链接,angular应使用
pushState
“内部”处理此问题,这与仅“浏览”该页面不同。这意味着,当您单击链接时,页面将按预期运行,但如果重新加载(CTRL+R),您将得到错误。

如果您使用
HTML5模式
,则必须在文档的
标题中包含
标记。您可以将
requireBase
设置为false,并使用
HTML5模式
,而不使用
标记。请看一看,如果您使用
HTML5模式
,您必须在文档的
标题
部分中包含
标记。您可以将
requireBase
设置为false,并使用
HTML5模式
,而不使用
标记。请看一下,这很正常。。。angular处理url的散列部分,我认为为了能够使用html5模式,您还应该在服务器上更改一些设置您是否在头部添加了html基本标记?是的,我有标记这是正常的。。。angular处理url的散列部分,我认为为了能够使用html5模式,您还应该更改服务器上的一些设置您是否在头部添加了html基本标记?是的,我有标记