当 运行 通过 Visual Studio 代码时,某些文件未提供
Some file not served when run via Visual Studio Code
我有一个由 Yeoman 生成的 'Hello World' Kestrel 服务器(如 described here)。
yo aspnet
当我通过命令行 运行 站点时,一切正常:
dotnet run
如果它是 运行 到 Visual Studio 代码虽然 bootstrap.css
、jquery.js
和 bootstrap.js
不加载 (404)。
看看F12的工具,其实是来自不同的地方。当 运行 通过 dotnet run
它们来自 https://ajax.aspnetcdn.com/...
,但是当 运行 通过 Visual Studio 代码时,浏览器正在本地文件夹 ~/lib/...
中寻找它们.
一个。为什么文件的来源因我 运行 站点的不同而不同?
b.我该如何解决这个问题?
谢谢
当你从命令行运行它时,它运行处于生产模式(没有ASPNETCORE_ENVIRONMENT
变量集。当你运行它来自Visual Studio 它将 ASPNETCORE_ENVIRONMENT
设置为 Development
。
在你的 Razor 文件中,你有一个 <environments>
部分来控制在哪种生产模式下提供哪些文件。根据您的 environment/OS,您需要以不同方式设置变量。也就是说,在 Linux 中,您需要 运行 ASPNETCORE_ENVIRONMENT=Development dotnet run
。
至于在开发模式下 运行 时出现 404 的原因,您可能需要将 wwwroot
文件夹复制到输出目录,并在 project.json
.
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"copyToOutput":
[
"wwwroot",
"Views",
"appsettings.json",
"web.config"
]
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config"
]
},
虽然通常需要将wwwroot
添加到copyToOutput
我有一个由 Yeoman 生成的 'Hello World' Kestrel 服务器(如 described here)。
yo aspnet
当我通过命令行 运行 站点时,一切正常:
dotnet run
如果它是 运行 到 Visual Studio 代码虽然 bootstrap.css
、jquery.js
和 bootstrap.js
不加载 (404)。
看看F12的工具,其实是来自不同的地方。当 运行 通过 dotnet run
它们来自 https://ajax.aspnetcdn.com/...
,但是当 运行 通过 Visual Studio 代码时,浏览器正在本地文件夹 ~/lib/...
中寻找它们.
一个。为什么文件的来源因我 运行 站点的不同而不同? b.我该如何解决这个问题?
谢谢
当你从命令行运行它时,它运行处于生产模式(没有ASPNETCORE_ENVIRONMENT
变量集。当你运行它来自Visual Studio 它将 ASPNETCORE_ENVIRONMENT
设置为 Development
。
在你的 Razor 文件中,你有一个 <environments>
部分来控制在哪种生产模式下提供哪些文件。根据您的 environment/OS,您需要以不同方式设置变量。也就是说,在 Linux 中,您需要 运行 ASPNETCORE_ENVIRONMENT=Development dotnet run
。
至于在开发模式下 运行 时出现 404 的原因,您可能需要将 wwwroot
文件夹复制到输出目录,并在 project.json
.
"buildOptions": {
"emitEntryPoint": true,
"preserveCompilationContext": true,
"copyToOutput":
[
"wwwroot",
"Views",
"appsettings.json",
"web.config"
]
},
"publishOptions": {
"include": [
"wwwroot",
"Views",
"appsettings.json",
"web.config"
]
},
虽然通常需要将wwwroot
添加到copyToOutput