页面重新加载时 Angular 应用程序中的 Grunt URL 重写

2024-01-26

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)
      ];
    }
  }
}

但是,如果我的 URL 有“.” (句点)其中,Grunt 无法重新加载页面。我在 Angular 应用程序中使用 HTML5 模式,效果很好。

我可以知道哪一部分吗

[
  require("connect-modrewrite")(["!(\\..+)$ / [L]"])
].concat(
  optBase.map(function (path) { return connect.static(path); })
)

导致它失败,我该如何解决这个问题?

注意:仅在页面重新加载时失败。我第一次访问该路线时,它可以工作,然后如果我点击刷新,它就会失败。


我能否知道 [此片段] 的哪一部分导致其失败以及如何解决此问题?

The connect-modrewrite这里的规则似乎仅用于重写非静态资产 URL。

[
  require("connect-modrewrite")(["!(\\..+)$ / [L]"])
].concat(
  optBase.map(function (path) { return connect.static(path); })
)

规则在这里传入,"!(\\..+)$ / [L]", is an 反向URL匹配规则 https://github.com/tinganho/connect-modrewrite#inverted-url-matching重写所有 URLdon't包含一个句点和一个或多个字符返回到基本 URL (/)。因此,如果您的路线包含句点,它们将不会被重写...这就是实时重新加载运行时失败的原因。

解决这个问题的一个建议是更明确地避免对静态资产的请求进行重写:

    require("connect-modrewrite")([
      '!\\.html|\\.js|\\.svg|\\.css|'
      + '\\.scss.*|\\.woff.*|\\.gif.*|\\.png$ '
      // etc...
      + '/ [L]'
    ])

请注意,此规则也以感叹号开头 (!)。它不是仅仅依赖于句点的存在,而是更明确地针对不包含某些文件扩展名的 URL - 以及句点! (:

Note: 在 searchcode.com 上找到了建议的代码: https://searchcode.com/file/284650461/Gruntfile.js/

我希望这有帮助! HMU 如有任何问题、更正或实际情况。

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

页面重新加载时 Angular 应用程序中的 Grunt URL 重写 的相关文章

  • 在反应中计算数量和价格总计

    我是 React 的新手 我在尝试设计的应用程序中遇到了问题 基本上我想要一个产品列表 我可以让用户更新其数量 每个数量的总数将显示在产品下方 整个包裹的总数将显示在底部 如果有人可以帮助我 我将非常感激 我的代码包含在下面 import
  • 检查 Javascript 中的 URL 是否损坏

    这个问题之前已经发布在 Stack 上 但没有一个具体到我想要理解的内容 检查 URL 是否正确的最简单方法是发送 http Head 请求 但是如何使用它来指定 URL 呢 我在之前的帖子中发现了这一点 function UrlExist
  • Google 地图 V3:防止标记缩放

    我有一个谷歌地图 上面有一个标记 我需要将标记设置为固定大小 例如 10x10 像素 并且即使放大或缩小也以相同的大小重新发送 这就是我现在所拥有的 并且不起作用 var marker new google maps Marker posi
  • 如何从标准 url 获取用于嵌入的正确 soundcloud url?

    所以现在我可以从嵌入或 iframe 标签中已嵌入的 soundcloud 文件中获取 url 并在另一个页面上使用这些 url 并将其显示在 fancybox 中 如果用户提供典型的共享 url 例如 有没有办法获得正确的 url 或显示
  • 如何使用 selenium 获取带有 css 选择器的所有元素的直接子元素?

    我已经尝试过使用 gt 语法 但 selenium 不接受它 我知道有一种方法可以使用 Xpath 获取它 但我们的整个项目是使用 CSS 选择器编写的 我试图存储一个列表 其中包含元素的所有直接子元素 但不包含其子元素 后代 当我使用 语
  • Javascript正则表达式替换多个组

    我正在尝试根据这样的正则表达式替换多个匹配的组 var paramRegex s w s w s w s s i should match group1 group2 group3 var emptyParam emptyParam rep
  • 对登录 Instagram 的 PhantomJS 代码进行故障排除

    我编写了这个 PhantomJS 脚本来自动登录 Instagram 它可以成功填写表单字段并按提交按钮 但它总是被重定向回登录屏幕并显示以下消息 你的用户名或密码不正确 我 100 确信凭据是正确的 并且我用多个 Instagram 帐户
  • Angular 2.0.0-rc3:与 routerLinkActive 匹配的部分路由

    我在用着routerLinkActive在我的主要路由中 a Bob a 当网址为 user the active类将被添加到a标签 但是在主路由下 我还有一些辅助路由 所以 当网址为 user aa 活动将被删除 我希望当 URL 是 u
  • 如何取消js文件的压缩?

    如何取消通过 webpack 工具缩小的 js 文件 缩小之前 function autoslideSlider next slide trigger click window on load function preloader fade
  • WebView获取最大滚动宽度

    大家好 我正在创建 epub 阅读器并在 android webview 中加载这本书 并且还使 webview 水平移动参考this https stackoverflow com questions 36617345 use horiz
  • 同位素重叠图像?

    似乎它只发生在 Chrome 和 Safari 中 而不是 Firefox 我将它与基础响应框架一起使用 所以我不确定如何设置高度 Chrome Safari 中的图像之间似乎也没有足够的间距 我该如何解决 编辑 这是一个小提琴http j
  • 覆盖骨干模型更改事件

    我认为我想做的事情很简单 我只是不知道该怎么做 当我的模型属性之一发生更改以便将一些数据传递给事件处理程序时 无论更改是值的增加还是减少 我想触发我自己的事件 基本上我希望我的处理程序在视图中执行此操作 handler function i
  • 如何检查节点中的req.body是否为空,express?

    下面是我的请求正文 它是从客户端发送的 var credentials ConsumerData ConsumerStoreId a ConsumerUserId a CustomerData CustomerId 2345678890 E
  • 获取数组中所有LI元素

    如何让 JS 选择 UL 标签内的每个 LI 元素并将它们放入数组中 div ul li One li li Two li li Three li li Four li li Five li ul div 我可以让 JS 将它们每个放入一个
  • jquery 改变标签

    我的代码不起作用 你能帮我吗 我希望将 class s7 的标签名称 p 更改为 h1 问题是您将所有元素与类相匹配s7 但是您需要对它们进行一一处理 以便将其内容复制到新元素中 在您当前的代码中 this总是document 不是当前元素
  • 按名称调用作为对象成员的 javascript 函数

    我希望能够通过名称将对任意函数的引用传递给另一个 javascript 函数 如果只是一个全局函数 没有问题 function runFunction funcName window funcName 但假设该函数可以是任意对象的成员 例如
  • 允许用户将自己的 JavaScript 添加到您的网站是否存在安全问题?

    我计划创建一个开源教育网络应用程序 人们可以在其中添加和编辑内容 有点像维基百科 不过 我希望添加另一个功能 允许用户使用 JavaScript 添加自己的交互式内容 类似于 JSFiddle 的做法 这样做有哪些安全问题 可选问题 如何克
  • HTML/CSS/JS:如何强制浏览器保存非“密码”类型输入的密码?

    问题是我有两个类似于用户名和密码的值 但实际上是用户用来登录我创建的网站的 2 个随机生成的 GUID 它们并不是真正的用户名和密码 而是我尝试的 GUID来复制这个组合 通常 浏览器在看到元素的 type password 属性时会询问您
  • 将对象解构为数组

    我有这个对象 const foo a kitten b puppy c lion 将其解构为变量就像这样 const a b c foo 是否有一个简单的方法如何将其解构为数组 以便结果是 const array a b c 据我所知 没有
  • 路由器解析器不渲染组件

    我有这个路由器解析器来从 Google Firestore 检索数据 我正在尝试使用解析器来提前获取数据 当我将调试器放置在解析函数中时 它会显示从服务器检索的数据 但它永远不会从resolve 方法返回 谁能帮我一下 路由模块 const

随机推荐

  • 在cmd中重新排列数组元素

    我的批处理文件中有一个数组 如下所示 port 0 port 1 0 port 2 3 port 3 2 是否有任何漂亮而优雅的方法可以将值向后移动一个元素 所以它看起来像这样 port 0 0 port 1 3 port 2 2 port
  • Caffe 运行测试失败

    成功构建 caffe 后 我进行了 runtest 但在 ImageDataLayer DBTest DataTransformTest HDF5OutputLayerTest 和一些求解器中失败 构建 链接到特定路径时是否缺少步骤 这是测
  • Django REST Framework 验证错误:“输入有效的 URL。”

    在我的 Django REST Framework 项目中 我有一个模型类 用于保存 Django 应用程序将在后台任务中抓取的服务 class Service models Model name models CharField max
  • URL 特定编码

    我尝试重新创建 URL 但找不到编码函数 Edit 背景 该字符串用于 API 当然没有文档 我尝试使用原始网址编码但似乎只有原始的编码 解码功能有效 所以我必须找到它是什么 input 2 3 word 888 gt word2 AND
  • CGridView 中的格式化日期过滤器

    我在 CGridView 中将日期显示为 22 6 2012 22 53 array name gt date value gt date j n Y G i strtotime model gt date 但在我的过滤器中 我需要以这种格
  • 如何在 SQL 中从另一个表获取计数?

    我有以下关于 SQL 的表 Mensajes IdMensaje int PK NOT NULL IdCliente int CorreoCliente varchar 100 CorreosAdicionales varchar MAX
  • 将滑动触摸从 UIView 传递到底层 UIScrollView 以实现正确滚动

    我的情况与这两篇文章类似 1907297 http www stackoverflow com questions 1907297 AND 689684 http www stackoverflow com questions 689684
  • NineOldAndroids,旋转或移动后不可点击视图

    I use 九老机器人 http nineoldandroids com2 4 0 为对象设置动画 主要用于运动和变换的控制 在 Android 4 0 及更高版本上一切正常 但在以前的版本 2 1 2 3 上 动画元素没有获得焦点并且不可
  • 在 Rails 中调试? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 如何在 RubyonRails 中 相对 成功地调试 我知道并广泛使用以下内容 Terminal 导轨控制台 开发者工具 日志文件 生产 开发
  • 删除 pandas DataFrame 列中字符串条目的末尾

    我有一个 pandas Dataframe 其中一列是文件列表 import pandas as pd df pd read csv fname csv df head filename A B C fn1 txt 2 4 5 fn2 tx
  • NA 正在箱线图 ggplot2 中绘制

    我正在尝试在 ggplot2 中绘制一个简单的箱线图 我有物种丰富度与土地利用类别 但是 我的数据中有 2 个 NA 出于某种奇怪的原因 它们被策划了 即使它们被 R 理解为 NA 有什么建议删除它们吗 我正在使用的代码是 ggplot d
  • ActiveRecord可以远程连接PostgreSQL并保护DB密码吗?

    我在远程 VPS 服务器 CentOS 5 上有一个 PostgreSQL 数据库 我想连接一个 Rails 应用程序 从我的本地 Mac 笔记本电脑连接到它 在我的笔记本电脑上 我安装了 ActiveRecord PostgreSQL 适
  • Apache solr 频繁添加/编辑/删除记录

    我正在考虑使用 Apache Solr 在我的数据库中 我将有大约 10 000 000 条记录 我将使用它的最坏情况有大约 20 个可搜索 可排序字段 我的问题是这些字段在一天中可能会频繁更改值 例如 在我的数据库中 我可能会同时更改 1
  • 将数组插入 mysql 数据库列

    我正在尝试将表单中的多选下拉列表中的值插入到 mysql 数据库列中 例如 下拉列表将选择一个或多个选项 然后在发布表单时将数据插入到 mysql 数据库中的一列中 我陷入了如何插入数据的困境 如果你想插入单行 那么你可以使用 implod
  • 如何获取使用 ChromeDriver 在 Azure 云服务中工作的 C# azure 服务

    我编写了一个使用 Selenium WebDriver ChromeDriver 的 C Azure 云服务 但当我将其部署到 Azure 时它不起作用 在本地运行良好 可能是因为我安装了 Chrome 我使用我的服务部署 chromedr
  • 如何添加自定义键盘

    我做了一个简单的应用程序 我的应用程序包含 10 个文本字段 我需要的是我需要隐藏默认键盘我放置手动键像这样 http b imagehost org download 0994 keypad 我该如何完成这个按键作为我的应用程序的键盘 任
  • gdb:打印二维fortran数组[重复]

    这个问题在这里已经有答案了 使用 GDB 在 Fortran 代码中打印二维数组的值时遇到问题 gdb print var 1 2 no such vector element 经过广泛的搜索后 我发现了许多关于该问题的帖子 日期为 200
  • 我可以为我的函数和类使用 PHP 保留名称吗?

    我想创建一个名为 new 的函数和一个名为 case 的类 我可以用 PHP 做到这一点吗 No http www php net manual en reserved keywords php you http codepad org z
  • 共享两个组合框的数据源

    我的 GUI 中有多个组合框 它们都需要数据 这些数据会随机变化 因此需要一种快速方法来保持所有值同步 我遇到了 DefaultComboBoxModel 它实际上非常适合 唯一的问题是 我需要组合框彼此独立 这意味着 如果我在其中选择一个
  • 页面重新加载时 Angular 应用程序中的 Grunt URL 重写

    Grunt 文件中的 livereload 块如下所示 livereload options open true middleware function connect options middleware var optBase type