AngularJs 路由提供者 404

2024-05-25

下面的代码来自 AngularJs 教程,我稍作修改。我希望从 url 中删除哈希值。我实际上成功了,但现在我有其他问题。

当我使用链接本地主机时,它工作得很好并将我重定向到本地主机/电话。但万一我尝试直接链接 localhost/phones,浏览器会抛出 404 错误。为什么会这样?

Code:

var phonecatApp = angular.module('phonecatApp', [
'ngRoute',
'phonecatControllers'
]);

phonecatApp.config(['$routeProvider', '$locationProvider' ,function($routeProvider,       $locationProvider) {
$routeProvider
    .when('/phones', {
        templateUrl : 'partials/phone-list.html',
        controller : 'PhoneListCtrl'
    }).
    when('/phones/:phoneId', {
        templateUrl : 'partials/phone-detail.html',
        controller : 'PhoneDetailCtrl'
    }).
    otherwise({
        redirectTo : '/phones'
    });

    $locationProvider.html5Mode(true).hashPrefix('!');
}])

为此,您必须在服务器端处理 url 重写。

根据您的服务器,您必须添加:

在 apache 中(例如 .htaccess):

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule !\.\w+$ index.html [L]
</IfModule>

如果您使用 grunt 和 grunt-contrib-connect,只需使用以下正则表达式添加中间件(modRewrite):

connect: {
  options: {
      port: 9002,
      hostname: 'localhost' // put here any ip if you want external access
  },

  dev: {
      options: {
          middleware: function(connect) {
              return [
                  //modRewrite is used to handle properly angularjs' html5 mode
                  modRewrite([
                      '^[^\\.]*$ /index.html [L]'
                  ])
              ]
          }
      }
  }
}

ps:在这种情况下,您的主入口点必须是index.html。

pps:您可能需要针对特定​​情况调整此正则表达式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AngularJs 路由提供者 404 的相关文章

随机推荐

  • 如何在不清除和闪烁地图的情况下刷新谷歌地图上的标记位置?

    是否可以创建无需闪烁 清除整个地图即可更新的 Google 地图 V2 标记 目前我必须清除地图然后添加标记 googleMap clear googleMap addMarker new MarkerOptions position en
  • 使用php显示.txt文件的内容

    使用此代码 我可以显示文件夹中任何txt文件的内容 问题是 txt 文件中的所有格式等都被跳过 txt 文件看起来像 nipponsei irc rizon net presents Title Ah My Goddess Sorezore
  • 使用 toast 显示来自 catch 语句的错误消息

    我的 Android 应用程序中有以下 catch 语句 我想通过 toast 显示任何错误消息 我可以这样做吗 catch Exception e Helper displayExceptionMessage this e getMess
  • FFMPEG波形透明,背景纯色

    我正在尝试使用 ffmpeg 生成波形 我希望背景为纯色 实际波形为透明 以下部分实现了我想要的 除了有黑色背景 我希望能够将其更改为任何颜色 但波形是透明的 我怎样才能用 ffmepg 实现这个目标 ffmpeg i input mp3
  • Spring Security匿名用户可以访问每个url

    我正在开发 gwt 应用程序 我想使用 spring security 来保护它 我在数据库中有用户数据 UserService 负责获取特定用户 我已经关注了这个tutorial http www javacodegeeks com 20
  • 如何使用 --build 选项查看 cmake 发出的命令

    当我运行 cmake build target INSTALL 命令时 如何查看发出的命令 似乎没有像 versbose之类的选项 cmake 帮助说 cmake build 是底层构建工具的接口 但没有说明有关发出的命令转储的任何内容 我
  • 使用 PHP 读取 cookie

    我正在尝试读取我用 javascript 设置的 cookie 特别是 jQuery Cookie 插件 然后我用 PHP 读取它以将其写入数据库 由于某种原因 cookie 是在页面加载时创建的 但在页面刷新之前并不 存在 这意味着我正在
  • 在 Java 中使用 Scala 常量

    我目前正在评估 Scala 的未来项目 并发现了一些奇怪的事情 我在 JSP 中为我们创建了以下常量 val FORMATED TIME formatedTime 但这没有用 经过一番尝试后 我决定反编译以了解其真相 private fin
  • 未捕获的类型错误:对象 [object Object] 没有方法“自动完成”

    我不断收到错误 未捕获类型错误 对象 对象对象 没有方法 自动完成 它工作得很好 直到几天前我似乎找不到问题 似乎 jquery ui 正在加载 所以我不明白为什么该方法不起作用 My code
  • Google API 令牌端点 POST 返回错误请求 400

    我正在尝试用一次性 Google Plus 授权代码换取访问令牌 但我不断收到 400 Bad Request 我正在使用VB NET 这是代码 We should now have a good one time authorizatio
  • 从数据库中删除样式 (SQL Server)

    我正在处理旧的数据库表 其中有附加了 CSS 的值 例如 font size 4 Select your gender font font size 4 Select your country font 除了一次删除一个样式之外 还有什么方
  • 如何更改 Sublime Text 3 中缩进指南选项的颜色?

    如何更改缩进引导线颜色 您需要编辑您正在使用的配色方案的配色方案文件 并找到
  • 使用 dplyr 对 R 中所有因变量进行分组汇总统计

    我正在尝试为 10 个因变量中的每一个生成分组 听力 我的自变量 因此 HL 和 NH 是两个组 汇总统计数据 平均值 标准差 最小值 最大值 标准误差等 我可以使用以下 2 个代码对一个变量 R PTA 执行此操作 1 RightPTA
  • 如何使用 graph api 获取粉丝页面的点赞数?

    如何使用 graph api 获取粉丝页面的点赞数 早些时候它在这里 https graph facebook com FANPAGE ID access token ACCESS TOKEN https graph facebook co
  • SQL Server 中的 FOR XML 路径

    注意 我已经解决了这个问题的大部分 但遇到了障碍 请读到底部 您将看到我在哪里添加了 注意 部分 TIA I have a rather extensive join query that I want dumped to XML I ha
  • YouTube iframe 嵌入 - 全屏

    我有一个嵌入网页的表单 填写完表格后 将使用 iframe 嵌入显示 YouTube 视频 当我进入 YouTube 视频的全屏模式时 什么也没有发生 嵌套 iframe 的全屏是否受到父 iframe 尺寸的限制 在当前的 YouTube
  • 让浏览器缓存我的动态 PHP 样式表

    我想在 PHP 文件 styles php 中创建一个样式表 以便样式表变得动态 具体取决于请求的用户 对于每个单独的用户来说 样式表是不变的 因此应该缓存在他的客户端浏览器上 我读过 您可以通过设置内容类型和缓存控制等标头来实现此目的 但
  • C++11:atomic::compare_exchange_weak 是否支持非原始类型?

    我有以下代码 include
  • 平静的 POST 响应的“最佳”实践

    所以这里没有什么新内容 我只是想得到一些澄清 似乎在其他帖子中找不到任何澄清 我正在平静地创建一个新资源 说 books POST 与身体 title The Lion the Witch and the Wardrobe author C
  • AngularJs 路由提供者 404

    下面的代码来自 AngularJs 教程 我稍作修改 我希望从 url 中删除哈希值 我实际上成功了 但现在我有其他问题 当我使用链接本地主机时 它工作得很好并将我重定向到本地主机 电话 但万一我尝试直接链接 localhost phone