[英]Serving static files in development with IIS Express and Visual Studio 2012
这似乎是一个非常常见的用例,但是我一生无法找到有关如何进行设置的任何信息。
我有一个“管理”网站,在该网站上我上传图片,然后在我的普通网站(单独的项目)上显示这些图片。 这两个项目都需要能够显示图像(所以我不能只是简单地将它们存储在网站的项目目录中并每天调用)。
在生产中,这很容易。 我只是在IIS中设置了一个虚拟目录,但是在Visual Studio中进行开发,对此没有直接支持。 我在网上看到的东西告诉您确实要进入IIS Express配置文件并手动添加虚拟目录,但是这样做有两个大问题:1)我处于多开发人员环境中,并且让每个开发人员都在其中手动一致的方法是不行,并且2)在我的代码中没有自动的方法来引用此静态目录,因此这将需要大量的硬编码路径来引用图像,这是一个非常糟糕的主意。
我也知道,我可以在项目中创建链接,但是我正在处理上传,而不是设计时知道的静态资源,因此要为项目中的每个新上传手动创建链接(尤其是当仅用于开发中的测试)是疯狂的。
那么,仅出于Visual Studio开发目的,在项目之间动态共享资源的最佳方法是什么?
就其价值而言,这些都是ASP.NET MVC 4项目,并且我正在Windows 7机器上使用Visual Studio 2012。
编辑我应该指定在上载图像时,该图像的相对路径存储在数据库表中。 我想我的真正问题是要解决从一个完全不同的项目到实际可访问URL的部分路径。 如果我在同一个项目中,那么我只会使用Url.Content(Model.ImageUrl)
类的东西,但是如果图像实际上不在同一个项目中,这显然将无法解决。
有人告诉我,我对此太想了。
在生产中,文件当然会通过某个虚拟目录提供,但是在开发中,文件从何处提供都没有关系。 因此,我真正需要做的就是为静态URL前缀添加一个应用程序设置,使其位于相对的图像URL之前。
为了开发,它只是我的管理站点的localhost +端口。 然后,在我发布的web.config转换中,我将其更改为生产URL,例如“ http://static.mydomain.com ”。 在我的应用程序代码中,我只是查找了该应用程序设置,并将其设置在相对图像URL的前面,所以我很高兴。
如果我在使用此方法时遇到任何问题,在有机会实际实施该方法时,将在此处以适当的解决方案予以注意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.