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
,则请求有效。
答案 0 :(得分:1)
static找不到以#
开头的文件
主题标签在URL中用作客户端片段标识符,并且不会被broswer发送到服务器。因此,问题不在于express.static()
没有找到它,而是该浏览器根本没有将#AAPL60.gz
发送到服务器。
如果您希望将其发送到服务器,则需要使用%23
正确编码,如:
http://localhost:17863/z7gfYLhXn3zDg5QQ/admiralmarkets-live/%23AAPL60.gz
尽管所有人都可以使用其中的字符,但在网址中允许将其作为常规字符(例如-
或_
或其他一些允许的字母数字字符)。 p>