Astrowind主题下Layout.astro添加带自定义属性Script标签失效求助
Astro构建后脚本自定义属性丢失的解决办法
方法1:用is:inline指令强制保留脚本原样
Astro默认会对内联脚本做优化处理,可能会移除自定义属性。给你的脚本标签加上is:inline指令,就能让Astro完全不处理这个脚本,所有属性和内容都会原样输出。
修改Layout.astro里的脚本标签:
<script is:inline data-grow-initializer="">!(function(){window.growMe|| /* 你的完整脚本代码 */})()</script>
方法2:通过Astro的injectScript API注入脚本
如果第一种方法没效果,试试用Astro官方的injectScript API来注入脚本,能精准控制脚本的位置和属性。
在Layout.astro的组件脚本区域(顶部---之间)添加代码:
--- import { injectScript } from 'astro:content'; injectScript('head-inline', { attrs: { 'data-grow-initializer': '' }, content: '!(function(){window.growMe|| /* 你的完整脚本代码 */})()' }); ---
这样脚本会被自动注入到页面的head标签里,自定义属性也会被完整保留。
方法3:检查Astrowind主题的配置逻辑
部分主题会有自己的脚本处理规则,你可以检查Astrowind主题的配置文件(比如astro.config.mjs或者主题自带的config.ts),看看是否有脚本优化相关的设置,是否需要禁用这类优化。另外也可以查看主题的Layout文件,确认是否有专门的自定义脚本注入区域,按照主题推荐的方式添加脚本,避免被主题的处理逻辑移除属性。
内容的提问来源于stack exchange,提问作者Vikram Aruchamy
相关产品推荐
相关产品推荐

