首页 > 解决方案 > 带有自定义 JS 文件的 Angular 应用程序在 localhost 和服务器上的运行方式不同

问题描述

我有这个简单的 Angular 应用程序:janev.ga,带有一个用于倒计时的自定义 JS 文件(我使用的是classycountdown 脚本)。 问题:当我在本地运行它时,一切都很好,但是,一旦我将它部署到服务器上,我意识到它与我的本地主机测试不同。我的意思是当我尝试在线访问它时,即使没有错误,它也永远不会在第一时间加载 JS 脚本。我必须刷新页面,然后倒计时脚本才会开始工作......我在组件中使用它的方式是在 angular.json(custom.js 文件)中声明它:

"scripts": [
              "node_modules/jquery/dist/jquery.min.js",
              "node_modules/bootstrap/dist/js/bootstrap.min.js",
              "src/assets/js/custom.js",
              "src/assets/js/jquery.classycountdown.min.js",
              "src/assets/js/jquery.classycountdown.js",
              "src/assets/js/jquery.knob.js",
              "src/assets/js/jquery.throttle.js"
            ]
,然后我在组件中使用它,如下所示:

declare const myDate: any;

export class AppComponent implements OnInit {
  
  myDate = myDate()[0];
  scnds = (myDate()[0] * 86400) - myDate()[1];
  toSec = {
    seconds: this.scnds
  }
}

这是custom.js:

function myDate(){
  var rightNow = new Date();
  // var theDate = rightNow.toISOString().slice(0,10).replace(/-/g,"");
  var goLiveDate = new Date("08/22/2020");
  var Result = Math.round(goLiveDate.getTime() - rightNow.getTime()) / (1000*3600*24);
  var toTheSecond = (rightNow.getHours() * 3600) + (rightNow.getMinutes() * 60) + (rightNow.getSeconds());
  return [Result.toFixed(), toTheSecond];
}

$(document).ready(function() {
          var remainingSec = $('.countdown').data('remaining-sec');
          $('.countdown').ClassyCountdown({
        theme: "flat-colors-very-wide",
        end: $.now() + remainingSec
    });
    });

谁能建议可能是什么问题?任何输入将不胜感激。

谢谢!

标签: javascriptangularcookiesserverlocalhost

解决方案


推荐阅读