我遇到了我的Windows 10机器x64的2013年和2015年安装在我的Visual Studio的一个非常奇怪的现象:他们不显示了完整的"高级保存选项..."编码类型列表中,已减少到只有3可能的选择(见截图#1).
清单期待包含编码类型的主要是更广泛的选择,包括UTF-8无BOM其中我使用了很多:他们都可以在VS我在我的笔记本电脑安装(8.1的Windows 64时,Visual Studio 2013 ,见截图#2).
任何人都知道为什么会这样,以及如何解决这个问题?提前致谢.
编辑:所有这些VS版本都是Community Edition,包括笔记本电脑上的版本(它不应该与构建相关 - CE总是有这些enctypes).第一个屏幕截图的路径被我抓了,它在GUI中显示得很好.
您可能知道,RFC 6265表明允许有多个带有该Set-Cookie名称的标头。
然而,提取API不允许这样做,因为所有的暴露的方法头接口(包括get(),set(),append(),entries()和所有其余的)已实施的所有具有相同名称的头的值合并成一个头分离用逗号。
例如,如果我们这样做:
var headers = new Headers();
headers.append('content-type', 'text/plain');
headers.append('set-cookie', 'test1=v; Max-Age=0');
headers.append('set-cookie', 'test2=v; Max-Age=0');
headers.append('set-cookie', 'test3=v; Max-Age=0');
Run Code Online (Sandbox Code Playgroud)
然后我们尝试使用 读取set-cookie值get('set-cookie'),或者通过headers使用迭代变量entries(),我们得到:
'set-cookie' : test1=v; Max-Age=0, test2=v; Max-Age=0, test3=v; Max-Age=0
Run Code Online (Sandbox Code Playgroud)
请注意,如果我们尝试读取或操作具有多个同名标头的现有响应对象(即由可以说支持此类允许行为的其他框架创建),也会发生相同的错误行为:换句话说,似乎Fetch API是完全无法妥善处理这种情况。
现在,虽然这种行为所需的一些报头,如Accept,该Set-Cookie标题不正确地被大多数浏览器(包括铬和Firefox)解析,从而导致不正确设置的cookie。
这是一个已知的错误吗?如果是这种情况,是否有可用的解决方法来克服这个问题?
我正在尝试将ASP.NET Core + Angular 4 SPA项目从.NET Core 2.0.0/Angular4升级到.NET Core 2.0.3/Angular5.除了在生产环境中进行服务器端渲染之外,我设法让一切正常工作,当我发布应用程序时i/e:
发生了未处理的异常:未找到"AppModule"的NgModule元数据.
错误:找不到'AppModule'的NgModule元数据.
只有在满足以上两个条件时才会出现此问题:
--env.prod交换机构建软件包该Index.cshtml视图文件中包含的asp-prerender-module参数,就像下面的例子:
<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>
如果我删除开关和/或参数,问题就会消失(与SSR一起).
我可以提供一些其他信息:
--end.prod在调试或发布运行之前手动启动带有交换机的Webpack来本地重现它.webpack.config.js文件中更改的唯一主要内容是替换@ ngtools/webpack包提供AotPlugin的新的Angular5特定内容 :我认为这可能也是原因,因为交换机使用的是AOT编译器而不是JIT一个.那个,或者与.NET SpaServices包相关的东西- 可能与新的Angular5和/或新的AoT编译器不相上下?AngularCompilerPlugin--env.prod可悲的是,我无法回归前者,AotPlugin因为它也会抛出错误 - 这是完全可以理解的,因为它并不意味着与Angular5一起使用.
软件版本
webpack.config.js
const path = require('path');
const …Run Code Online (Sandbox Code Playgroud)