【发布时间】:2014-05-29 05:43:41
【问题描述】:
我对 .NET 框架完全陌生,我想知道提供静态内容和访问用户生成内容的最佳方式是什么。
假设我有以下文件:
logo.jpg
document.pdf
etc.doc
我应该把这个放在哪里(在哪些文件夹上)?我如何访问它?
最后,将其提升到另一个层次。假设我有一个允许用户上传文档的网络应用程序(比如说一些图片)。我想知道我的文件夹/目录的结构应该如何?
在 django / CI 中,我通常会有一个如下文件夹:
应用程序/{all-web-app-related-folder-and-file-goes-here} 上传/{all-related-user-generated-content-goes-here-categorized-by-file-type} 资产/{css-javascript-document-would-go-here}
注意:我没有做过任何事情,也没有做过任何尝试。仅仅是因为我不知道如何访问尝试静态内容。我曾经尝试访问位于 Content/Scripts 文件夹中的 *.css 或 *.js 文件。
即:localhost:12345/Scripts/jquery.js
事实证明,这在 ASP.NET MVC 中并不是一个简单的过程
哦,顺便说一句, 在某些情况下,我也想从我的 css 文件中访问我的图像。这给我带来了另一个困惑。
编辑 1:我阅读了以下文章
http://www.c-sharpcorner.com/uploadfile/dhananjaycoder/working-with-images-in-Asp-Net-mvc-framework/
但是它不适用于我当前版本的 MVC(我使用的是 MVC 5)
编辑 2:所以,这就是我迄今为止一直在尝试的内容
- 我在根目录(与模型、控制器等同级)上创建了一个名为 Assets 的文件夹。
- 我在 Asset 内部创建子文件夹(即图像、文档等)
-
然后我想直接从我的视图中访问这些文件,我会这样:
img src="@Url.Content("~/Asset/images/picture.png")"
如果我想访问图像文件,上面的例子是合适的。
但我不确定这是否是理想的方法。然而,这是我目前能遇到的最简单的解决方案(或者我应该说,相当幼稚)。
任何提示将不胜感激。
【问题讨论】:
-
如果你想在
Content/Scripts文件夹中访问jquery.js,那么这应该可以:localhost:12345/Content/Scripts/jquery.js。 -
你不会想把它放在一个视图中。一旦您将其移至生产服务器,它就会中断。
-
严格来说它不是 js 文件,对于 *.css 和 *.js 文件,我更喜欢 BundleConfig,因为它还可以即时压缩我的所有文件(这非常漂亮)。我只想知道访问静态内容(如文档和/或图像)的最佳方式(如果不是常用方式)是什么。
-
@ekad '@Url.Content' 现在几乎是多余的
-
通常情况下,ASP.Net MVC 会自动添加一个 Images 文件夹,但是像您在 EDIT 2 中提到的那样创建一个文件夹是没有问题的。您可以创建一个上传文件夹并记住设置允许您使用应用程序添加文件的正确权限。
标签: c# asp.net asp.net-mvc asp.net-mvc-5