[{"data":1,"prerenderedAt":371},["ShallowReactive",2],{"navigation_docs":3,"diagnostic-content-VITE0003":44},[4,8,12,16,20,24,28,32,36,40],{"title":5,"path":6,"stem":7},"CLI","\u002Fcli","1.cli",{"title":9,"path":10,"stem":11},"Nuxt","\u002Fnuxt","2.nuxt",{"title":13,"path":14,"stem":15},"Vue","\u002Fvue","3.vue",{"title":17,"path":18,"stem":19},"Vite","\u002Fvite","4.vite",{"title":21,"path":22,"stem":23},"Nitro","\u002Fnitro","5.nitro",{"title":25,"path":26,"stem":27},"TypeScript","\u002Ftypescript","6.typescript",{"title":29,"path":30,"stem":31},"shadcn","\u002Fshadcn","7.shadcn",{"title":33,"path":34,"stem":35},"Package","\u002Fpackage","8.package",{"title":37,"path":38,"stem":39},"Extending Doctor","\u002Fextending","9.extending",{"title":41,"path":42,"stem":43},"Pinia","\u002Fpinia","9.pinia",{"id":45,"title":46,"body":47,"category":53,"code":362,"description":363,"docsUrl":54,"extension":364,"fix":77,"framework":365,"meta":366,"navigation":232,"pack":56,"path":367,"ruleId":57,"rulePath":58,"seo":368,"severity":59,"source":60,"sourceUrl":61,"stem":369,"why":70,"__hash__":370},"diagnostics\u002Fdiagnostics\u002FVITE0003.md","VITE0003: Do not URL-reference source files as public assets",{"type":48,"value":49,"toc":352},"minimark",[50,62,67,71,75,78,82,87,90,165,168,282,286,289,320,324,336,340,348],[51,52],"rule-metadata",{"category":53,"docsUrl":54,"fix":55,"pack":56,"ruleId":57,"rulePath":58,"severity":59,"source":60,"sourceUrl":61},"assets","https:\u002F\u002Fvite.dev\u002Fguide\u002Fassets.html#static-asset-handling","no","vite-doctor\u002Fvite","vite\u002Fassets\u002Fno-src-absolute-public-url","\u002Fvite\u002Frules\u002Fassets\u002Fno-src-absolute-public-url","warn","src\u002Frule-packs\u002Fvite\u002Frules\u002Fassets.ts","https:\u002F\u002Fgithub.com\u002Fonmax\u002Fvite-doctor\u002Fblob\u002Fmain\u002Fsrc\u002Frule-packs\u002Fvite\u002Frules\u002Fassets.ts",[63,64,66],"h2",{"id":65},"why-it-happens","Why it happens",[68,69,70],"p",{},"Vite's Vue plugin imports static asset URLs on img, video, source, image, and use elements, including absolute \u002Fsrc\u002F paths. Bound string literals and other native URL attributes remain runtime URLs and can point to source files that are absent from the production output. This rule assumes the default Vue asset transforms; custom component props and custom transformAssetUrls mappings are not inferred.",[63,72,74],{"id":73},"fix","Fix",[68,76,77],{},"Import source assets and bind the generated URL, or move unchanged assets into public and reference them from \u002F.",[63,79,81],{"id":80},"example","Example",[83,84,86],"h3",{"id":85},"import-src-assets","Import src assets",[68,88,89],{},"Before",[91,92,97],"pre",{"className":93,"code":94,"language":95,"meta":96,"style":96},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Ctemplate>\n  \u003Cimg :src=\"'\u002Fsrc\u002Fassets\u002Flogo.svg'\" alt=\"Logo\">\n\u003C\u002Ftemplate>\n","vue","",[98,99,100,116,155],"code",{"__ignoreMap":96},[101,102,105,109,113],"span",{"class":103,"line":104},"line",1,[101,106,108],{"class":107},"sMK4o","\u003C",[101,110,112],{"class":111},"swJcz","template",[101,114,115],{"class":107},">\n",[101,117,119,122,125,129,132,135,139,141,144,146,148,151,153],{"class":103,"line":118},2,[101,120,121],{"class":107},"  \u003C",[101,123,124],{"class":111},"img",[101,126,128],{"class":127},"spNyl"," :src",[101,130,131],{"class":107},"=",[101,133,134],{"class":107},"\"",[101,136,138],{"class":137},"sfazB","'\u002Fsrc\u002Fassets\u002Flogo.svg'",[101,140,134],{"class":107},[101,142,143],{"class":127}," alt",[101,145,131],{"class":107},[101,147,134],{"class":107},[101,149,150],{"class":137},"Logo",[101,152,134],{"class":107},[101,154,115],{"class":107},[101,156,158,161,163],{"class":103,"line":157},3,[101,159,160],{"class":107},"\u003C\u002F",[101,162,112],{"class":111},[101,164,115],{"class":107},[68,166,167],{},"After",[91,169,171],{"className":93,"code":170,"language":95,"meta":96,"style":96},"\u003Cscript setup lang=\"ts\">\nimport logoUrl from '.\u002Fassets\u002Flogo.svg'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cimg :src=\"logoUrl\" alt=\"Logo\">\n\u003C\u002Ftemplate>\n",[98,172,173,197,219,227,234,243,273],{"__ignoreMap":96},[101,174,175,177,180,183,186,188,190,193,195],{"class":103,"line":104},[101,176,108],{"class":107},[101,178,179],{"class":111},"script",[101,181,182],{"class":127}," setup",[101,184,185],{"class":127}," lang",[101,187,131],{"class":107},[101,189,134],{"class":107},[101,191,192],{"class":137},"ts",[101,194,134],{"class":107},[101,196,115],{"class":107},[101,198,199,203,207,210,213,216],{"class":103,"line":118},[101,200,202],{"class":201},"s7zQu","import",[101,204,206],{"class":205},"sTEyZ"," logoUrl ",[101,208,209],{"class":201},"from",[101,211,212],{"class":107}," '",[101,214,215],{"class":137},".\u002Fassets\u002Flogo.svg",[101,217,218],{"class":107},"'\n",[101,220,221,223,225],{"class":103,"line":157},[101,222,160],{"class":107},[101,224,179],{"class":111},[101,226,115],{"class":107},[101,228,230],{"class":103,"line":229},4,[101,231,233],{"emptyLinePlaceholder":232},true,"\n",[101,235,237,239,241],{"class":103,"line":236},5,[101,238,108],{"class":107},[101,240,112],{"class":111},[101,242,115],{"class":107},[101,244,246,248,250,252,254,256,259,261,263,265,267,269,271],{"class":103,"line":245},6,[101,247,121],{"class":107},[101,249,124],{"class":111},[101,251,128],{"class":127},[101,253,131],{"class":107},[101,255,134],{"class":107},[101,257,258],{"class":137},"logoUrl",[101,260,134],{"class":107},[101,262,143],{"class":127},[101,264,131],{"class":107},[101,266,134],{"class":107},[101,268,150],{"class":137},[101,270,134],{"class":107},[101,272,115],{"class":107},[101,274,276,278,280],{"class":103,"line":275},7,[101,277,160],{"class":107},[101,279,112],{"class":111},[101,281,115],{"class":107},[63,283,285],{"id":284},"verify-the-fix","Verify the fix",[68,287,288],{},"Run only this rule after editing so the report stays focused on the diagnostic you are closing:",[91,290,294],{"className":291,"code":292,"language":293,"meta":96,"style":96},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm vite-doctor . --framework vite --rules vite\u002Fassets\u002Fno-src-absolute-public-url\n","bash",[98,295,296],{"__ignoreMap":96},[101,297,298,302,305,308,311,314,317],{"class":103,"line":104},[101,299,301],{"class":300},"sBMFI","pnpm",[101,303,304],{"class":137}," vite-doctor",[101,306,307],{"class":137}," .",[101,309,310],{"class":137}," --framework",[101,312,313],{"class":137}," vite",[101,315,316],{"class":137}," --rules",[101,318,319],{"class":137}," vite\u002Fassets\u002Fno-src-absolute-public-url\n",[63,321,323],{"id":322},"useful-links","Useful links",[325,326,327],"ul",{},[328,329,330],"li",{},[331,332,335],"a",{"href":54,"rel":333},[334],"nofollow","Upstream docs",[63,337,339],{"id":338},"related-rule","Related rule",[325,341,342],{},[328,343,344],{},[331,345,346],{"href":58},[98,347,57],{},[349,350,351],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":96,"searchDepth":118,"depth":118,"links":353},[354,355,356,359,360,361],{"id":65,"depth":118,"text":66},{"id":73,"depth":118,"text":74},{"id":80,"depth":118,"text":81,"children":357},[358],{"id":85,"depth":157,"text":86},{"id":284,"depth":118,"text":285},{"id":322,"depth":118,"text":323},{"id":338,"depth":118,"text":339},"VITE0003","Flags \u002Fsrc\u002F asset URLs in native Vue template attributes that are not transformed by default.","md","vite",{},"\u002Fdiagnostics\u002Fvite0003",{"title":46,"description":363},"diagnostics\u002FVITE0003","r3-mQw2ffew3aV2oqB82tljCDGFEHWlZNuYRwGe338Q",1791309483860]