我有一个由Yeoman生成的“ Hello World” Kestrel服务器(如此处所述)。
yo aspnet
当我通过命令行运行站点时,一切运行正常:
dotnet run
如果它通过Visual Studio代码,虽然运行bootstrap.css
,jquery.js
并且bootstrap.js
不加载(404)。
从F12工具来看,它们实际上来自不同的位置。当dotnet run
它们通过运行https://ajax.aspnetcdn.com/...
时来自,但是当通过Visual Studio Code运行时,浏览器正在本地文件夹中寻找它们~/lib/...
。
一种。为什么文件的来源取决于我运行网站的方式?b。我该如何解决?
谢谢
从命令行运行它时,它将以生产模式运行(未ASPNETCORE_ENVIRONMENT
设置变量。从Visual Studio运行时,它将设置ASPNETCORE_ENVIRONMENT
为)Development
。
在Razor文件中,您有一个<environments>
部分来控制在哪种生产模式下提供哪些文件。根据您的环境/ 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
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句