You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Remix+Prisma应用中如何阻止Chrome DevTools的404请求?

解决Remix应用中Chrome DevTools发起的404请求问题

问题背景

你的Remix应用服务器端出现的404错误,是Chrome DevTools自动发起的请求——它尝试访问/.well-known/appspecific/com.chrome.devtools.json来检测是否存在自定义调试配置,这个请求本身不影响应用功能,但会产生冗余日志。以下是几种阻止该404日志的方案:


方案1:通过Remix中间件拦截(推荐,适配你的v2.15.3版本)

Remix v2.8+支持全局中间件,直接在app/middleware.ts中添加拦截逻辑:

import { createMiddleware } from "@remix-run/node";

export default createMiddleware(async (request, next) => {
  const url = new URL(request.url);
  // 匹配DevTools的请求路径
  if (url.pathname === "/.well-known/appspecific/com.chrome.devtools.json") {
    // 返回204状态码,告知浏览器无需内容,避免404日志
    return new Response(null, { status: 204 });
  }
  // 其他请求正常处理
  return next(request);
});

方案2:创建匹配路由返回空响应

在app/routes目录下创建路由文件$.well-known.appspecific.com.chrome.devtools.json.tsx(用$前缀适配Remix文件路由规则),内容如下:

import type { LoaderFunctionArgs } from "@remix-run/node";

export async function loader({ request }: LoaderFunctionArgs) {
  return new Response(null, { status: 204 });
}

当DevTools发起请求时,会匹配到该路由,返回204状态码,不会触发404错误。

方案3:自定义服务器拦截请求

如果你使用自定义服务器(如Express),可以在请求到达Remix处理器前拦截路径:

import { createRequestHandler } from "@remix-run/express";
import express from "express";

const app = express();

// 拦截目标请求
app.get("/.well-known/appspecific/com.chrome.devtools.json", (req, res) => {
  res.sendStatus(204);
});

// 挂载Remix请求处理器
app.all("*", createRequestHandler({
  build: require("./build"),
}));

app.listen(3000, () => console.log("服务器运行在端口3000"));

内容的提问来源于stack exchange,提问作者Chen Peleg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 02:50:03