简体   繁体   中英

Fetch returns 404 not found in web component

I have a component, facts-and-steps.js , and I want to import an HTML file that contains a <template> in it. I am trying to use fetch to get the template.html file, but it's returning a 404 error.

Here is the code that returns 404:

let x = await (await fetch('./template.html')).text();
//x prints "Not Found"

I am using the Open-wc @web/dev-server - https://modern-web.dev/docs/dev-server/overview/

How can I fetch files?

fetch loads relative resources based on where it is executed, not where it is loaded from. Say you have example.com/components/facts-and-steps/facts-and-steps.js loaded and executed on example.com/ . It will try to load example.com/template.html . You basically have a couple of options.

  1. Load with a more complete path
fetch('/components/facts-and-steps/template.html')
  1. Use a import.meta . Web.dev has a good guide .
fetch(new URL('./template.html', import.meta.url))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM