2013-05-07 68 views
0

这似乎是一个非常常见的用例,但我不能在我的生活中找到有关如何设置它的任何信息。使用IIS Express和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),但是如果图像实际上不在同一个项目中,这显然不会解决。

+0

您的挑战是管理文件夹还是创建链接? – 2013-05-07 14:49:41

+0

我想你可以说两个。我并不在乎文件实际存储的位置,实际上,我并不真正需要*关心。我们可能将这些项目托管给他们,并将他们转移到CDN等生产环境中。但是,我希望能够在我的代码中以抽象方式引用文件(如果需要,可以使用Url.Content()或甚至自定义助手)。我真的不想硬编码路径。 – 2013-05-07 14:53:16

+0

好吧,有很多方法可以做到这一点,但最明显的方法是创建一个带有PK ID和字符串路径的映射表。您可以根据需要创建路径,并且可以在您的URL中使用该标识。 – 2013-05-07 14:58:14

回答

1

有人指出我正在过度考虑这一点。

在生产中,这些文件当然会通过某个虚拟目录提供,但是在开发过程中,它们的服务位置并不重要。所以,我真正需要做的就是为静态URL前缀添加一个应用设置,以便将其添加到相对图片网址。

对于开发它只是我管理网站的localhost +端口。 然后,在我的发布web.config转换中,我只是将其更改为生产URL,即类似“http://static.mydomain.com”。在我的应用程序代码中,我只是查找这个应用程序设置,并将其添加到我的相对图片网址中,而我是金手指。

如果我遇到了这种方法的任何问题,我会在适当的解决方案中注意到它们,一旦我有机会真正实现它。