保留路径

编辑页面

Metro 和 Expo Router 保留的 URL 路径,你应避免将其用于路由或静态文件。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

如果你创建了某个路由,或者在某些 URL 路径下放置了静态文件,Metro 或 Expo Router 会拦截请求,而不是提供你的内容。根据路径不同,这可能会导致 “404 Asset not found” 错误,或者你的页面被静默替换为内部开发服务器响应。

/assets/*

Metro 会在此路径下提供所有打包资源(图片、字体和其他文件)。如果你创建了 app/assets.tsx 下的路由,或者 public/assets/ 下的目录,Metro 会拦截请求,你的内容将永远不会被访问到。

这同样适用于顶层路由和静态文件:

app
assets.tsx与 Metro 冲突
assets
  index.tsx与 Metro 冲突
public
assets
  logo.png与 Metro 冲突

请重命名你的路由或目录以避免冲突:

app
media.tsx可用
public
images
  logo.png可用

/_expo/*

Expo Router 会将此路径用于多个内部中间件,包括开发工具和清单。请不要在此路径下创建路由或静态文件。

/_flight/*

React Server Components 会在内部使用此路径。请不要在此路径下创建路由或静态文件。

/inspector

React Native 使用 /inspector/debug/inspector/network 作为调试器。请避免创建匹配 /inspector 或其子路径的路由。

/expo-dev-plugins/*

Expo 开发工具插件使用此路径。请不要在此路径下创建路由或静态文件。

/manifest

开发服务器会在此路径下提供原生应用清单。如果你创建了 app/manifest.tsx 下的路由,开发服务器会返回清单 JSON,而不是你的页面。你的路由在开发期间看起来会像是静默未加载。

/_sitemap

Expo Router 会自动在此路径下生成一个站点地图路由用于调试。如果你创建了 app/_sitemap.tsx 下的路由,它将覆盖内置站点地图。有关此功能的更多细节,请参见 Sitemap

/public/*

如果你的项目有一个 public 目录,/public URL 路径可能会与静态文件服务冲突。请避免创建 app/public.tsxapp/public/index.tsx 下的路由,因为当 public 目录存在时,该路径会被隐式保留。

/favicon.ico

与上面的路径不同,/favicon.ico 可以安全覆盖。Expo CLI 在未提供时会提供一个默认 favicon。你可以通过将 favicon.ico 文件放入你的 public 目录,或者创建一个 API route 来替换它。