小编Dar*_*eal的帖子

Visual Studio 2015 - 高级保存选项缺少编码类型

我遇到了我的Windows 10机器x64的2013年和2015年安装在我的Visual Studio的一个非常奇怪的现象:他们不显示了完整的"高级保存选项..."编码类型列表中,已减少到只有3可能的选择(见截图#1).

截图1: Windows 10上的VS2015/VS2013  - 仅提供3种编码类型

清单期待包含编码类型的主要是更广泛的选择,包括UTF-8无BOM其中我使用了很多:他们都可以在VS我在我的笔记本电脑安装(8.1的Windows 64时,Visual Studio 2013 ,见截图#2).

截图2: Windows 8.1上的VS2013  - 所有可用的编码类型

任何人都知道为什么会这样,以及如何解决这个问题?提前致谢.

编辑:所有这些VS版本都是Community Edition,包括笔记本电脑上的版本(它不应该与构建相关 - CE总是有这些enctypes).第一个屏幕截图的路径被我抓了,它在GUI中显示得很好.

byte-order-mark visual-studio-2013 visual-studio-2015

11
推荐指数
1
解决办法
1248
查看次数

如何使用 Fetch API 获取/设置多个“Set-Cookie”标头?

您可能知道,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-cookieget('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。

这是一个已知的错误吗?如果是这种情况,是否有可用的解决方法来克服这个问题?

javascript cookies fetch response-headers fetch-api

8
推荐指数
2
解决办法
3491
查看次数

使用--env.prod在Angular 5服务器端渲染中找不到"AppModule"错误的NgModule元数据

我正在尝试将ASP.NET Core + Angular 4 SPA项目从.NET Core 2.0.0/Angular4升级到.NET Core 2.0.3/Angular5.除了在生产环境中进行服务器端渲染之外,我设法让一切正常工作,当我发布应用程序时i/e:

发生了未处理的异常:未找到"AppModule"的NgModule元数据.
错误:找不到'AppModule'的NgModule元数据.

只有在满足以上两个条件时才会出现此问题:

  • Webpack使用--env.prod交换机构建软件包
  • Index.cshtml视图文件中包含的asp-prerender-module参数,就像下面的例子:

    <app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>

如果我删除开关和/或参数,问题就会消失(与SSR一起).

我可以提供一些其他信息:

  • 它不是与IIS相关的东西,它发生在Kestrel级别.
  • 它与Web服务器机器无关,因为我甚至可以通过--end.prod调试发布运行之前手动启动带有交换机的Webpack来本地重现它.
  • 它似乎与源代码没有任何关系,因为即使使用具有非常基本的AppModule文件和普通代码的单组件示例应用程序,我也可以重现它.
  • 使用.NET Core 2.0.0和Angular 4.3.x,该项目运行得非常好.
  • 我在webpack.config.js文件中更改的唯一主要内容是替换@ ngtools/webpack包提供AotPlugin的新的Angular5特定内容 :我认为这可能也是原因,因为交换机使用的是AOT编译器而不是JIT一个.那个,或者与.NET SpaServices包相关的东西- 可能与新的Angular5和/或新的AoT编译器不相上下?AngularCompilerPlugin--env.prod

可悲的是,我无法回归前者,AotPlugin因为它也会抛出错误 - 这是完全可以理解的,因为它并不意味着与Angular5一起使用.

软件版本

  • .NET Core 2.0.3
  • Angular 5.0.2
  • @ ngtools/webpack 1.8.2(也尝试过1.8.1 - 同样的结果)
  • WebPack 2.6.1(也尝试了2.5.6 - 相同的结果)

webpack.config.js

const path = require('path');
const …
Run Code Online (Sandbox Code Playgroud)

asp.net asp.net-core angular

5
推荐指数
1
解决办法
4073
查看次数