当前位置: 首页 > 面试题库 >

有没有办法通过Express提供静态HTML文件而无需扩展名?

元胡媚
2023-03-14
问题内容

我想在不指定扩展名的情况下提供html文件。没有定义路线,有什么办法可以做到这一点?例如代替

 /helloworld.html

我只想做

 /helloworld

问题答案:

一种快速的“肮脏”解决方案是将.html请求附加到其中没有句点并且公共目录中存在HTML文件的请求中:

var fs        = require('fs');
var publicdir = __dirname + '/public';

app.use(function(req, res, next) {
  if (req.path.indexOf('.') === -1) {
    var file = publicdir + req.path + '.html';
    fs.exists(file, function(exists) {
      if (exists)
        req.url += '.html';
      next();
    });
  }
  else
    next();
});
app.use(express.static(publicdir));


 类似资料:
  • 问题内容: 这是我的项目文件夹 这是我index.js中的静态文件配置 这是我的index.html 这是我的nginx配置 但是我在所有脚本上都得到404。另一个奇怪的是,这些文件上的mime-type设置为 我在这里做错了什么? 我有一个项目,该项目具有相同的项目结构,并且具有相同的配置,但它适用于此项目,在这种情况下不起作用。 问题答案: 您无需配置Nginx 和 Express即可提供静态

  • 问题内容: 我正在构建Node.js应用程序,并且正在使用nginx作为反向代理。我的应用程序有一些我需要提供服务的静态文件和一个Socket.io服务器。 我知道我可以直接使用Express服务静态文件(使用express.static中间件)。另外,我可以将nginx直接指向我的静态文件所在的目录,以便由nginx提供服务。 所以,问题是:哪种方法更好?使用每种方法时,我可以面对哪些利弊? 问

  • 问题内容: 我正在为Django使用apache + mod_wsgi。 并且所有css / js / images都通过提供。 出于某种奇怪的原因,当其他人/朋友/同事尝试访问该网站时,jquery / css不会为他们加载,因此页面看上去很混乱。 我的html文件使用这样的代码- 我的nginx配置是这样的 有一个目录,其中有相应的&目录。 奇怪的是,当我访问它们时页面显示正常。 我已经清除了

  • 根目录=/srv/myproject/xyz/main/ 在“主”文件夹中,我有几个*。html文件,我希望它们都指向一个url,比如说(这与目录结构非常不同) 这是我最基本的nginx配置 如果我使用简单别名 然后它完美地工作,我的意思是我可以通过等等访问这些html文件 但是我不想要那个html扩展。 我试图遵循这些思路,但没有成功http://forum.nginx.org/read.php

  • 我有一个express应用程序托管在google上,它使用express静态中间件。我希望将静态文件存储在上,并且能够从常规文件系统切换到而无需太多修改。 我在考虑编写一个中间件: 使用Google Cloud client library for Node.js,类似于Express缓存来自Google Cloud Storage的图像流); 或充当代理(将路径名映射到原始URL)。 有没有更简

  • 在Dart(2.15.0)中,我试图通过定义toJson方法将jsonEncode与枚举一起使用。它不起作用。 根据文档,将查找方法。 当直接在枚举上调用时,扩展可以工作,但是不知何故jsonEncode没有找到toJSON。 Dart如何获取枚举的“值”https://dart.dev/guides/language/extension-methods 知道这是一个错误还是预期的行为吗? 否则,