使用 URL 重写从 iisnode 提供静态文件

2023-12-04

我在 web.config 文件中使用重写规则,让 issnode 下运行的节点应用程序指向我的 server.js 文件。 myapp/* 指向 server.js。

    <rule name="myapp" enabled="true">
      <match url="myapp/*" />
      <action type="Rewrite" url="server.js" />
    </rule>

这一直工作得很好 www.mywebsite.com/myapp/ 将加载运行我的应用程序。我想要的是从网站的根目录进行重定向,以便 www.mywebsite.com/ 可以运行我的应用程序。所以我改变了我的 web.config 文件

    <rule name="myapp" enabled="true">
      <match url="/*" />
      <action type="Rewrite" url="server.js" />
    </rule>

所以这是运行 server.js 并提供我的静态 html 文件,唯一的问题是从我的 html 文件引用任何外部文件(css、js、图像等)每个请求只需 500 秒。我用它来提供静态文件

        var libpath = require('path');
        var _path = "."; <-- This seems to be the problem


        var uri = url.parse(req.url).pathname;
    var filename = libpath.join(_path, uri);
    fs.readFile(filename, "binary", function (err, file) {
            if (err) {
            res.writeHead(500, {
                "Content-Type": "text/plain"
            });
                 res.write(err + "\n");
                 res.end();
                return;
            }

         var type = mime.lookup(filename);
            res.writeHead(200, {
                "Content-Type": type
            });
         res.write(file, "binary");
         res.end();
        });

    break;

所以我的问题是如何指向我的节点应用程序/服务器的根目录来提供静态文件。

Thanks

Jono


在 iisnode 中提供静态内容的最佳方法是配置 URL 重写模块,以便 IIS 静态文件处理程序处理静态内容而不是 Node.js 的请求。让 IIS 提供静态内容比使用任何 Node.js 机制提供这些文件具有更大的性能优势,因为围绕缓存进行了内核级优化,而且不必破坏 JavaScript 代码。

对于实现此目的的样板 web.config 配置,请参阅https://github.com/tjanczuk/iisnode/issues/160#issuecomment-5606547

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

使用 URL 重写从 iisnode 提供静态文件 的相关文章

随机推荐

  • 如何获取res文件夹的Uri?

    我正在尝试获取可绘制文件夹中图像的 Uri 我尝试了很多可能的方法 但似乎没有任何效果 谁能建议我如何获取 res 文件夹的 Uri 任何帮助深表感谢 嗯 实际上很容易 包中资源的基本 URI 类似于以下可能性 android resour
  • 如何为 iphone 5 设置 apple-touch-startup-image?

    I tried 但这没有用 苹果的界面指南还没有针对 iPhone 5 进行更新 有谁知道吗 谢谢 1 视口不要使用 width device width 使用以下代码
  • SSO - 未找到 OpenID 端点

    我正在尝试让 SSO openid 与 dotnetopenauth 一起使用 我有两个单独的项目 分别进行调试 都在本地主机上 但有两个不同的端口 一个充当提供者 一个充当依赖方 依赖方正在运行localhost 1903 提供者正在运行
  • 无效的 Git RSA 密钥指纹

    我开始收到这个错误 Received disconnect from 192 30 253 112 port 22 2 Connection blocked because server only allows public key aut
  • 如何在 Visual Studio 或其他构建工具的一个 C# 项目中生成 dll 和 exe 的混合?

    如何在 Visual Studio 或其他构建工具的一个 C 项目中生成 dll 和 exe 的混合 技术上可行吗 是的 我知道它可以在 2 个或更多项目中完成 我不确定你的问题的动机是什么 因为你可以引用 Net 可执行文件 就好像它是
  • 从 MySQL 中的同一(随机)记录中选择 2 列的最快方法是什么?

    我希望从同一条记录中随机检索一对列 不过 我听说 Rand 效率很低 所以我想使用不同的方式 很多文章都这么说 包括http akinas com pages en blog mysql random row 是的 我的标题几乎说明了一切
  • Haskell do 块中如何允许表达式

    在以下代码的第 4 行中 我在 do 块中的两个 IO 操作之间夹有一个表达式 1 doubleX Show x Num x gt x gt IO 2 doubleX x do
  • 我需要从 tomcat 读取带有日志的远程文件

    我需要从 tomcat 读取带有日志的远程文件 如果我可以通过 ssh 访问日志文件夹 最方便的方法是什么 日志查看器可以从远程服务器读取日志 它支持SFTP FTP和Samba 它还提供远程文件系统浏览器 免责声明 我是 OtrosLog
  • 如何用swift 2.0播放背景音乐?

    嗨 我是 swift 和 ios 开发的新手 我的代码一直在工作 直到我更新到 Swift 2 0 我使用了 swift 迁移工具 但我仍然不知道如何排序和修复我的代码 请帮忙 import AVFoundation var backgro
  • 如何列出项目中的所有表格大小

    有没有办法列出 BigQuery 中的所有表大小 我知道这样的命令 select table id sum size bytes pow 10 9 as size from certain dataset TABLES group by 1
  • 插入带有特殊字符的 Hive 表内容 - 制表符空格和换行符

    我正在尝试从 Hive 表中筛选 where 子句 选择带有特殊字符 特别是 Tab 和 NewLine 的数据 我努力了 我努力了like n like t like hex 9 等等 但它们似乎不起作用 还尝试创建一个虚拟表来插入此类数
  • 这个列表操作哪里出了问题?

    我正在用Python 操作列表 In 52 myList 1 2 3 4 5 In 54 c 10 In 55 for i elem1 in enumerate myList b elem1 elem2 for elem2 in range
  • 为什么这个字典定义会引发语法错误? [复制]

    这个问题在这里已经有答案了 可能的重复 lVals 1 08 2011 抛出异常有什么原因吗 我正在定义一个字典 将天数映射到各自的单词 由于某种原因 以下代码引发 SyntaxError 无效标记 并突出显示 08 days 01 fir
  • DO 循环中 IF 条件的奇怪标签用法[重复]

    这个问题在这里已经有答案了 我不确定这段代码是哪个版本的 Fortran 而且我也不太擅长 但这是我试图理解的一段代码 DO 55 J 1 N IF KODE J 55 55 40 Can not figure out what this
  • 使用 api 密钥访问 JIRA API,无需用户名和密码

    目前我正在使用用户名和密码访问 C Net 应用程序中的 JIRA API 但我需要访问 JIRA API 而无需输入用户名和密码 即使没有哈希用户名和密码也是如此 有没有办法创建 API 密钥并用它访问 JIRA API 是的 JIRA
  • 弹性项目是否可以与其上方的项目紧密对齐?

    这实际上就是 Pinterest 的布局 然而 网上找到的解决方案是用列包裹的 这意味着容器会不经意地水平增长 那是notPinterest 布局 并且它不能很好地处理动态加载的内容 我想要做的是拥有一堆固定宽度和不对称高度的图像 水平布局
  • if(0 == '%') echo "WTF,Php,你为什么不能理智地比较事物?"

    我刚刚将一个疯狂的错误减少到这个问题的标题中 我确信对于为什么 Php 认为 0 或者我认为任何其他特殊字符 有一个完全合理的解释 我认为在 StackOverflow 上得到这个解释会很好 它会对任何字符串执行相同的操作 将非数字字符串转
  • iOS私有API文档[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 是否有网站或项目记录 iPhone SDK 的私有 API 这里是从 iPhone OS 2 2 1 到 iOS 9 2 的可搜索档案 https
  • 使用 VBA 在窗体上移动动态创建的控件

    在 Excel 中我创建了一个表单 在此表单上我创建了 3 个按钮 我希望能够在运行时移动这些按钮 我遇到的问题是如何在运行时引用按钮 Private Sub CommandButton1 Click Me Controls Command
  • 使用 URL 重写从 iisnode 提供静态文件

    我在 web config 文件中使用重写规则 让 issnode 下运行的节点应用程序指向我的 server js 文件 myapp 指向 server js