代码之家  ›  专栏  ›  技术社区  ›  Miroslav Popov

express static找不到以标签开头的文件

  •  0
  • Miroslav Popov  · 技术社区  · 8 年前

    static 找不到以开头的文件 # 我知道 dotfiles 选项,但是将其设置为true并不能解决问题。

    hashtagfiles 或类似的选择或其他解决方案?

    这是我收到的错误消息:

    请求: http://localhost:17863/z7gfYLhXn3zDg5QQ/admiralmarkets-live/#AAPL60.gz

    Error: Resource not found
    at catchPageNotFound (D:\BitBucket\EA Studio\index.js:95:17)
    at Layer.handle [as handle_request] (D:\BitBucket\EA Studio\node_modules\express\lib\router\layer.js:95:5)
    at trim_prefix (D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:317:13)
    at D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:284:7
    at Function.process_params (D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:335:12)
    at next (D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:275:10)
    at D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:635:15
    at next (D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:260:14)
    at Function.handle (D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:174:3)
    at router (D:\BitBucket\EA Studio\node_modules\express\lib\router\index.js:47:12)
    

    我的代码是:

    app.use(express.static(path.join(__dirname, "public/data"), {setHeaders: setGzipHeaders, dotfiles: "allow"}));
    

    如果我将文件重命名为 _AAPL60.gz ,请求有效。

    1 回复  |  直到 8 年前
        1
  •  1
  •   jfriend00    8 年前

    静态找不到以开头的文件#

    标签在url中用作客户端片段标识符,而不是由broswer发送到服务器。所以,问题不在于 express.static() 没有找到,而是浏览器没有发送 #AAPL60.gz 到服务器。

    如果要将其发送到服务器,则需要使用 %23 像:

    http://localhost:17863/z7gfYLhXn3zDg5QQ/admiralmarkets-live/%23AAPL60.gz

    尽管对所有人来说使用一个字符可能要简单得多,但是在url中允许使用一个常规字符,比如 - _ 或其他允许的字母数字字符。

    推荐文章