更新
你可以阅读下面的所有细节..但基本上,现在重要的是我 做VS2012 Typescript正在编译和保存ANSI文件...
我可以手动将文件重新保存为UTF-8,一切正常..
我在Windows 8上,我已经在5个不同的版本上重现了这个问题 5个不同城市的5个不同开发商使用的机器......
唯一的共性是Windows 8
我有一个示例项目在IE中运行良好,但在Chrome或FF中根本没有。看起来文件编码不正确,IE正在计算它,但Chrome和FF不是......
例如,以下是编译的JavaScript文件的前几个喜欢
/// <reference path="../Framework/Core.ts" />
var MVVM;
(function (MVVM) {
var Application = (function () {
function Application() {
this.core = undefined;
this.templatePath = "Atlatl/Templates/";
this.viewPath = "Atlatl/Views/";
this.dependentScriptsPath = "Scripts/";
this.viewModelsPath = "Atlatl/App/ViewModels/";
this.frameworkPath = "Atlatl/Framework/";
this.pages = {
};
这就是Chrome“认为”它从IIS(8&amp; 8 express)接收的内容:
爼晥牥湥散潆瑡㵨⸢⼮墙浡睥牯⽫潃敲琮≳⼠ാ瘊牡䴠噖㭍昨湵琐潩䴨噖⥍笠††庆灁汰捩瑡潩 ‽昨湵琐潩⤨笠
更新
以下是文件
的chrome调用的标题- 请求 -
Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Host:localhost:40665
If-Modified-Since:Wed, 03 Apr 2013 16:33:17 GMT
If-None-Match:"153551f28830ce1:0"
Referer:http://localhost:40665/
User-Agent:Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.43 Safari/537.31
- 响应 -
Accept-Ranges:bytes
Date:Wed, 03 Apr 2013 17:06:28 GMT
ETag:"153551f28830ce1:0"
Server:Microsoft-IIS/8.0
X-Powered-By:ASP.NET
X-SourceFiles:=?UTF-8?B?QzpcUHJvamVjdHNcUmFuZG9tV29ya1xNdmNBcHBsaWNhdGlvbjEyXE12Y0FwcGxpY2F0aW9uMTJcQXRsYXRsXEFwcFxhcHAuanM=?=
那里没什么好笑的......
我尝试了所有以下编译方法,各种各样的失败,所有这些都在同一行
1)只需在VS
中使用TypeScript编译器2)使用Web Essentials
A)有和没有UTF-8 BOM标志设置为真
B)在构建
时有和没有重新编译我可以提供一个示例项目,或者如果您完成本教程,您将看到我在谈论的内容https://github.com/CatapultSystems/atlatl/wiki/Visual-studio-hello-world
对于可能导致这种情况的原因,我感到非常难过......而且我的所有人都知道该怎么做......
答案 0 :(得分:2)
我不认为它与编译或TypeScript有任何关系。
生成的JavaScript文件没有BOM。
回复应包含Content-Length: XXXX
和Content-Type: application/javascript
- 而您的回复不应包含304 Not Modified
和200 OK
。它似乎是var dummyChars = "Ù";
响应,而不是{{1}}响应。
您是否尝试使用Ctrl + F5在Chrome中强制刷新?
<强>更新强>
在记事本中重新保存选择UTF-8的JavaScript文件只添加BOM(假设JS文件的内容是7位ASCII)。
您应该能够生成相同的效果设置Web Essentials以添加BOM或添加虚拟字符串常量
{{1}}
到你的TypeScript文件。执行此操作后,JavaScript文件应与从记事本中保存的JavaScript文件相同。