Windows 10 reached EOS (end of support) on October 14, 2025. If you are on Windows 10, see this article.

搜尋 Mozilla 技術支援網站

防止技術支援詐騙。我們絕對不會要求您撥打電話或發送簡訊,或是提供個人資訊。請用「回報濫用」功能回報可疑的行為。

了解更多

Template literal not resolving as expected

  • 無回覆
  • 0 有這個問題
  • 63 次檢視
  • Open

I have a directory structure

C:

   Gustafson
       Website
           ⋮
           scripts
               global.js
               ⋮
           ⋮
           TestDirectory
               baseUrl_test.html
           ⋮

In the <head> of a webpage, I determine a baseUrl for the page using the following:

 <script>
   // assumes website topmost directory is "Website""
   ( async ( ) => {
     const segments = document.documentURI.split ( "/");
     const index = segments.findIndex ( element => 
                                        element == "Website" );
     if ( index < 0 )
       {
       throw new TypeError ( 
                 "Website structure not constructed correctly" );
       }
     segments.length = index + 1;
     let path = segments.join ( "/" );
     path += "/";
     window.baseUrl = path;
     console.log(`${baseUrl}`);
     } ) ( );
 </script>

The console log displays

file:///C:/Gustafson/Website/

In the body is

 <script>
   console.log ( `${baseUrl}scripts/global.js` );
 </script>
 <script src=`${baseUrl}scripts/global.js`></script>
 <script>
 window.onload = 
   function ( )
     {
     Global.initialize_globals ( );
     };
 </script>

The console log displays

file:///C:/Gustafson/Website/scripts/global.js Loading failed for the <script> with source “file:///C:/Gustafson/Website/TestDirectory/%60$%7BbaseUrl%7Dscripts/global.js%60”. Uncaught ReferenceError: Global is not defined

   onload file:///C:/Gustafson/Website/TestDirectory/baseUrl_test.html:37
   EventHandlerNonNull* file:///C:/Gustafson/Website/TestDirectory/baseUrl_test.html:34

The problem is the console.log displays what is expected but the src= is using something totally different.

I have a directory structure C: Gustafson Website ⋮ scripts global.js ⋮ ⋮ TestDirectory baseUrl_test.html ⋮ In the <head> of a webpage, I determine a baseUrl for the page using the following: <script> // assumes website topmost directory is "Website"" ( async ( ) => { const segments = document.documentURI.split ( "/"); const index = segments.findIndex ( element => element == "Website" ); if ( index < 0 ) { throw new TypeError ( "Website structure not constructed correctly" ); } segments.length = index + 1; let path = segments.join ( "/" ); path += "/"; window.baseUrl = path; console.log(`${baseUrl}`); } ) ( ); </script> The console log displays file:///C:/Gustafson/Website/ In the body is <script> console.log ( `${baseUrl}scripts/global.js` ); </script> <script src=`${baseUrl}scripts/global.js`></script> <script> window.onload = function ( ) { Global.initialize_globals ( ); }; </script> The console log displays file:///C:/Gustafson/Website/scripts/global.js Loading failed for the <script> with source “file:///C:/Gustafson/Website/TestDirectory/%60$%7BbaseUrl%7Dscripts/global.js%60”. Uncaught ReferenceError: Global is not defined onload file:///C:/Gustafson/Website/TestDirectory/baseUrl_test.html:37 EventHandlerNonNull* file:///C:/Gustafson/Website/TestDirectory/baseUrl_test.html:34 The problem is the console.log displays what is expected but the src= is using something totally different.

如果您還沒有帳號,您必須先登入帳號 來回覆文章。還沒有帳號的話,只能發問新問題