0

我有一个奇怪的问题,其中应用程序部署在AWS中时角度未定义,但本地在我的角度或JavaScript代码中没有问题。在AWS生产JS静态文件问题Django应用程序

更新:

我的静态文件(JS,CSS,图像等)都住在S3静态文件桶。在检索文件时没有任何问题,但是似乎突然间一个已经部署了几个月的工作提交开始在加载静态文件时引发JS问题。

下面是我的基本模板我的JS文件:

{% compress js %} 
    <script src="{{STATIC_URL}}shared/stacktrace-js/dist/stacktrace.js"></script> 
    <script src="{{STATIC_URL}}shared/jquery/2.1.1/jquery.min.js"></script> 
    <script src="{{STATIC_URL}}shared/jquery-growl/1.2.3/jquery.growl.js"></script> 
    <script src="{{STATIC_URL}}shared/jquery-ui-1.12.1.custom/jquery-ui.min.js"></script> 
    <script src="{{STATIC_URL}}ckeditor/ckeditor-init.js"></script> 
    <script src="{{STATIC_URL}}shared/ckeditor-custom/ckeditor-custom.js"></script> 
    <script src="{{STATIC_URL}}shared/bootstrap/3.3.5/dist/js/bootstrap.min.js"></script> 
    <script src="{{STATIC_URL}}shared/utils.js"></script> 
    <script src="{{STATIC_URL}}shared/angular/1.3.11/angular.min.js"></script> 
    <script src="{{STATIC_URL}}shared/angular/1.3.11/angular-route.min.js"></script> 
    <script src="{{STATIC_URL}}shared/angular/1.3.11/angular-cookies.min.js"></script> 
    <script src="{{STATIC_URL}}shared/angular-bootstrap/0.11.0/ui-bootstrap-tpls-0.11.0.min.js"></script> 
    <script src="{{STATIC_URL}}shared/bootstrap-multiselect/bootstrap-multiselect.js"></script> 
    <script src="{{STATIC_URL}}shared/introjs/intro.js"></script> 
    <script type="text/django" src="{{STATIC_URL}}shared/ch-error-logging.js"></script> 
    <script type="text/django" src="{{STATIC_URL}}shared/ch-config.js"></script> 
    <script src="{{STATIC_URL}}shared/angulartics/dist/angulartics.min.js"></script> 
    <script src="{{STATIC_URL}}shared/angulartics-segment/dist/angulartics-segment.min.js"></script> 
    <script src="{{STATIC_URL}}shared/chart.js/dist/Chart.min.js"></script> 
    <script src="{{STATIC_URL}}shared/select2/dist/js/select2.min.js"></script> 
    <script src="{{STATIC_URL}}shared/angular-chart.js/dist/angular-chart.js"></script> 
    <script src="{{STATIC_URL}}shared/jquery-validation/dist/jquery.validate.min.js"></script> 
    <script type="text/django" src="{{STATIC_URL}}shared/ch-track.js"></script> 
    <script type="text/django" src="{{STATIC_URL}}shared/ch-file.js"></script> 
    <script src="{{STATIC_URL}}shared/offline.js"></script> 
    {% endcompress %} 

如果我改变jquery.min.js到的jquery.js的压缩块内部或外部,那么其他的JS文件开始提高语法问题。通常在Chrome的控制台错误说

Unexpected token (

而且在Firefox,错误说

SyntaxError: function statement requires a name

+0

嗨,如果你能有完整的错误描述更新,它会更容易一点,以找出错误。 '意外的标记('有点模糊 –

+0

这只是我在控制台中得到的东西,我还有其他的错误说'angular is undefined',我猜这是因为语法错误导致js文件加载失败。 – nmusleh

+0

听起来像它可能已经修复在这里:https://github.com/django-compressor/django-compressor/pull/813,你有没有尝试过使用django-compressor的开发分支? – karyon

回答

0

post帮我找出哪些JS文件被压缩造成的错误JS。基本上,我在指令/控制器构造方面存在问题,并且通过使用ng-strict-di,我发现了所有这些问题。

来自AngularJS ngApp文档。 https://docs.angularjs.org/api/ng/directive/ngApp

ngStrictDi (optional) boolean if this attribute is present on the app element, the injector will be created in "strict-di" mode. This means that the application will fail to invoke functions which do not use explicit function annotation (and are thus unsuitable for minification), as described in the Dependency Injection guide, and useful debugging info will assist in tracking down the root of these bugs.

相关问题