当前位置: 首页 > 知识库问答 >
问题:

next.js - 在NextJS中new URL为啥和标准不一样呢?

田远
2023-09-01

测试代码很简单如下:

const logo = new URL('http://up1.yii.so/jianli/static/square.js', import.meta.url);// import.meta.url is file:///Users/liwei/Downloads/app/web3/next.v2/src/app/optimizing/script/urlimports/page.tsxconsole.log(logo.href);// output: _next/static/media/square.251a1772.js

我不太理解,为啥:http://up1.yii.so/jianli/static/square.js + file:///Users/liwei/Downloads/app/web3/next.v2/src/app/optimizing/script/urlimports/page.tsx = _next/static/media/square.251a1772.js

我先找了mdn,在new URL()中关于第一个参数url如下描述:

如果 url 是相对 URL,则会将 base 用作基准 URL。如果 url 是绝对 URL,则无论参数 base 是否存在,都将被忽略。

显然nextjs中的new URL()和web标准不一样,但是文档又没有提到,所以想问下nextjs中的new URL()是什么标准?

共有1个答案

周洋
2023-09-01

你理解的是对的。 不过在一些框架中会允许你使用url进行模块导入(不限于next,原理就是Webpack BuildHttp)

import logo from 'https://example.com/assets/logo.png'

在next中对于远程资源也是可以这样的

const logo = new URL('https://example.com/assets/file.txt', import.meta.url) console.log(logo.pathname)// prints "/_next/static/media/file.a9727b5d.txt"

具体你可以查看
Next Doc

 类似资料:
  • 在Mac Zsh 错误的返回结果 在pycharm 里面运行不会报错

  • 我注意到当涉及到std::function对象和std::bind时,std::is_convertible和std::is_assignable会产生一些奇怪的结果。 我假设当这些函数返回true时,就可以进行转换了。还是我错过了什么? 下面的代码在不同的编译器上打印不同的结果,我希望它打印0,因为这些类型不能赋值。 它在以下编译器上打印0: null 它在以下编译器上打印 1: 4.7 VC

  • 演示: sandbox地址:https://codesandbox.io/p/sandbox/pensive-mestorf-nyxpst?file=... 打开如果服务没启动,请自行启动 包含2个页面:和1个Api路由: 数据获取页:/link/fetch 链接导航页:/link/auto,页面链接指向:/api/time 缓存刷新路由:/api/time,获取请求转向:/link/fetch

  • 我不知道这个代码出了什么问题,我得到的标准输出是空的错误帮助我! 提供的投入:

  • 小弟是nextjs新手,用的nextjs最新版本14,然后想要实现私有路由,于是在next中间件中引入了next-auth/@beta. 另外,我的auth配置是使用的CredentialProvider,也就是从nextjs服务器用最新的route handler直接链接数据库,去获取用户信息并鉴权。数据库链接用的mongoDB的native driver. 报错信息: The edge run

  • 我对标准差的计算有点执着,如果你能在下面的两个问题上给我一些帮助,那就太好了。 代码 问题1:我如何计算这个的标准误差(平均值的标准偏差)? 代码 问题2:如何计算累积标准偏差? 非常感谢!!(很抱歉数据格式错误!)