You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

容器绑定脚本项目中,如何获取文件内容用于模板渲染?

访问容器绑定脚本项目中上传文件内容的解决方案

ScriptApp.getResource并非Google Apps Script的官方方法,要读取容器绑定脚本项目中上传文件的内容,可改用ScriptApp.getProjectFiles()方法遍历项目文件并读取目标内容,具体修改如下:

修改后的函数实现

requireGs 函数

function requireGs(scripts) {
  console.log(scripts);
  const projectFiles = ScriptApp.getProjectFiles();
  const fileMap = {};
  
  // 将项目中所有文件按名称存入映射表
  while (projectFiles.hasNext()) {
    const file = projectFiles.next();
    fileMap[file.getName()] = file;
  }

  return `<script>\n${scripts
    .map(function (d) {
      const file = fileMap[d];
      if (!file) throw new Error(`文件 ${d} 不存在于项目中`);
      return file.getBlob().getDataAsString();
    })
    .join('\n\n')}</script>\n`;
}

requireCSS 函数

function requireCSS(scripts) {
  const projectFiles = ScriptApp.getProjectFiles();
  const fileMap = {};
  
  while (projectFiles.hasNext()) {
    const file = projectFiles.next();
    fileMap[file.getName()] = file;
  }

  return `<style>\n${scripts
    .map(function (d) {
      const file = fileMap[d];
      if (!file) throw new Error(`文件 ${d} 不存在于项目中`);
      return file.getBlob().getDataAsString();
    })
    .join('\n\n')}</style>\n`;
}

关键说明

  • ScriptApp.getProjectFiles()会返回当前脚本项目内的所有文件(包括上传的.gs、.html等类型文件),通过遍历将文件按名称存入映射表,后续可快速匹配目标文件。
  • 调用时传入的文件名需与项目中文件的实际名称完全一致,若文件存放在项目子文件夹中,文件名需包含完整路径(例如server/models.gs)。
  • 首次运行脚本时可能需要授权,若遇到权限缺失问题,可在脚本编辑器的「扩展」>「Apps Script API」中确认API已启用,或在运行时完成权限授权流程。

内容的提问来源于stack exchange,提问作者LittleFoxyFox

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 17:08:30