Dynamic script creation (document.createElement) ignores the defer attribute per HTML spec — scripts are async regardless. Alpine.js CDN loaded fast and auto-initialized before page scripts had executed, causing ReferenceError for x-data functions (adminStores, dark, isSideMenuOpen, etc.) and blank pages. Fix: Replace dynamic script creation with static <script defer> tags and move extra_scripts block BEFORE Alpine.js in all 4 base templates (admin, store, merchant, storefront). Alpine.js is now always the last deferred script, ensuring all page functions are defined before it auto-initializes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
6.6 KiB
6.6 KiB