Google应用脚本无法更新应用

时间:2015-05-04 15:47:17

标签: google-apps-script

我对此我是全新的,我知道这可能很简单,但我似乎无法让这个工作。我在网上找到了这个应用程序脚本,可以让人们将文件上传到我的Google云端硬盘,但是当我尝试更改其中的任何内容并保存时,它并未在应用中反映出来。我尝试添加CSS或在Google Script编辑器中更新文本然后按Save然后运行doGet功能,但没有弹出任何内容向我显示页面,应用程序根本没有变化。它已经部署和授权。

server.gs:

function doGet(e) {
  return HtmlService.createHtmlOutputFromFile('form.html');
}

function uploadFiles(form) {

  try {

    var dropbox = "Student Files";
    var folder, folders = DriveApp.getFoldersByName(dropbox);

    if (folders.hasNext()) {
      folder = folders.next();
    } else {
      folder = DriveApp.createFolder(dropbox);
    }

    var blob = form.myFile;    
    var file = folder.createFile(blob);    
    file.setDescription("Uploaded by " + form.myName);

    return "File uploaded successfully " + file.getUrl();

  } catch (error) {

    return error.toString();
  }

}

form.html:

<link rel="stylesheet" href="https://ssl.gstatic.com/docs/script/css/add-ons1.css">

<?!= include('style'); ?>

<form id="myForm">
<input type="text" name="myName" placeholder="Your name..">
<input type="file" name="myFile">
<input type="submit" value="Upload File" 
       onclick="this.value='Uploading..';
                google.script.run.withSuccessHandler(fileUploaded)
                .uploadFiles(this.parentNode);
                return false;">
</form>

<div id="output"></div>

<script>
function fileUploaded(status) {
    document.getElementById('myForm').style.display = 'none';
    document.getElementById('output').innerHTML = status;
}
</script>

3 个答案:

答案 0 :(得分:0)

如果您在末尾使用带有'exec'的URL,该URL仅用于部署的最后一个版本,它将不会显示开发版本。其次,为了显示任何客户端HTML,JavaScript,CSS,您必须刷新浏览器选项卡。您无需刷新浏览器选项卡即可查看.gs服务器端代码中的任何更改结果。我遇到过这样的情况,我似乎需要重新加载浏览器,或者重新启动计算机以获得某些工作,但我无法验证,这可能只是我的一个愚蠢的错误。如果事实证明不是这些问题,请告诉我。我非常怀疑它与你的代码本身有什么关系。如果它是共享文件,并且您不是所有者,则可能存在所有者未授权新权限的情况,因此需要具有之前未经授权的不同权限的新代码将无法运行。

答案 1 :(得分:0)

我相信你还没有发布你的应用程序!

您需要转到发布,部署为Web App。

你必须生成一个新版本,然后你可以部署它,之后,你会得到一个窗口,显示已部署的URL(官方URL)和一个测试URL(为了测试每个保存你制作你的代码):

enter image description here

之后,如果您需要正式发布新修改,则必须转到文件,管理版本并创建新版本,然后再次在“部署”菜单上选择此新版本。

答案 2 :(得分:0)

感谢@ billy98111

每次部署Web应用程序时,它都会使用相同的版本。这就是为什么它不更新。

进行更改后,请创建新版本,然后进行部署。然后,在部署时选择要运行的版本

enter image description here