我在Azure上有一个MVC 6应用程序并托管我的静态文件,我必须ftp到服务器并手动将它们放在/site/wwwroot
上。进行日常更改时,这有点麻烦。
为了解决这个问题,我在Azure上设置了Bitbucket的连续部署。我为静态站点创建了单独的repo。我注意到回购已添加到/site/repository
。
如何从那里提供静态文件?我尝试将虚拟目录从/ --> site\wwwroot
更改为/ --> site\repository
,但已获得
指定的CGI应用程序遇到错误,服务器终止了进程
有点吓人。还原更改并重新启动服务器不起作用。我不得不再次从Visual Studio发布以某种方式覆盖配置。
答案 0 :(得分:2)
MVC 6应用程序将在根目录中具有wwwroot文件夹(作为控制器,视图等的兄弟)
如果您将静态内容放在那里,并确保在startup.cs中定义了app.UseStaticFiles();
,则静态内容应该部署并与其他内容一起运行。
答案 1 :(得分:1)
与另一个帖子(Serving static files in ASP.NET 5 MVC 6)
一样你需要
1)尝试升级以使用最新版本的MVC 6(https://github.com/aspnet/Mvc/releases)
2)将静态文件放在wwwroot下
3)app.UseStaticFiles
4)如果存在IIS未知的文件,则必须通过web.config或代码配置mime-type,例如
var provider = new FileExtensionContentTypeProvider();
provider.Mappings.Add(".json", "application/json");
provider.Mappings.Add(".ico", "image/x-icon");
// Serve static files.
app.UseStaticFiles(new StaticFileOptions { ContentTypeProvider = provider });