编辑我不想重定向网页,特定文件等。我想更改从根源目录到我选择的目录中存储图像,视频和其他媒体的路径 。在这种情况下c:/ dev / prjfiles / prjname / public(c:/ dev / prjfiles / prjname /是我的工作目录)和我除了当我的html执行img src =“/ pic.png”时它会找到图像C:/dev/prjfiles/prjname/publi/pic.png。我需要一个有效的解决方案,我试着看看如何设置虚拟目录等。我无法弄明白。因此赏金。我正在生成html,我不是在写 asp:image runat="server"
等我从数据库中提取数据并输出html。仍然是WIP的部分是处理POST请求的代码。 html已经存在,但我无法在site.com/here污染我的源目录(c:/ dev / trunk / thisprj / thisprj / 我的.aspx文件,我不希望500 .png)中有数百个文件/ gif / jpg here )
我不知道如何设置asp.net环境。我假设我有一个无法从网上获得的根路径,一个bin /我可以把我的asp.net dll和一个公共文本放在我想要的任何文件中。
我想将我的项目文件从其他所有内容中分离出来。我的JS,css和图像文件在prjfiles / prjname / public中,我的sqlite db在prjfiles / prjname /中,而额外的二进制文件在prjfiles / prjname / bin中。
当我运行我的应用程序并尝试加载图像时出现问题。例如/cssimg/error.png。我的项目在我/ public文件夹中找不到资源,我不知道如何让它找到它们。如何设置我的项目呢?
注意:我将工作目录路径设置为prjfiles / prjname /。在代码中我写了./bin/extrabin.exe和db.sqlite3,它们正确地访问文件。
答案 0 :(得分:5)
您可能希望观看ASP.NET的入门视频
http://www.asp.net/get-started/
编辑:添加了更多信息
正如@Murph建议的那样,你的假设是不正确的。 IIS负责阻止对任何重要文件和文件夹的HTTP访问,例如App_Code中的* .aspx.cs和* .cs,任何DLL,App_Data目录下的任何内容和web.config。
内容文件,例如* .html,* .css,*。js,.gif,.jpg,.png都以正常方式提供。
通过这种方式,不需要“公共”文件夹。
答案 1 :(得分:4)
我不知道如何设置asp.net环境。我假设我有一个无法从网上获得的根路径,一个bin /我可以把我的asp.net dll和一个公共文本放在我想要的任何文件中。
这是错误的假设!
通常对于复杂的逻辑等。您在根目录外的单独项目中创建,并在bin文件夹中引用结果程序集。
说真的,如果没有IDE或手册,就无法进行ASP.NET工作。 Visual Web Developer 2008 Express IDE是免费的,http://asp.net有大量资源可供入门。
答案 2 :(得分:2)
我不知道我的问题是否正确,但也许您可以尝试<BASE>
HTML标记。
HTML
<base>
代码“为页面上的所有链接指定默认网址和默认目标”
在W3Schools check it out,有一个很好的简单例子。
否定的一面是,您需要在每个页面中添加<BASE>
标记。
答案 3 :(得分:1)
听起来你应该能够创建一个虚拟目录来做你想要的 - 但这是一个非常非标准的设置。
请记住,IIS将阻止用户下载DLL和其他项目级文件,因此您通常不需要在单独的图层中对它们进行分区。
例如,只需在项目的顶层有一个cssimg文件夹,并跳过整个公用文件夹。
答案 4 :(得分:1)
我知道你来自哪里。 ASP.NET项目的设置与您对它们的处理方式略有不同,但您可以使它们按您的需要工作。
ASP.NET项目 IS 的根目录可公开访问。在Visual Studio中创建WebSite时,它在根目录上创建了一个default.aspx页面。你在IIS托管?如果是这样,它默认设置为提供default.aspx。但我离题了。
以下是如何让它像你想要的那样工作(主要是):
创建一个WebSite,然后右键单击该站点并添加名为“prjfiles”的文件夹。右键单击该文件夹,然后创建另一个名为“public”的文件夹。创建另一个名为“cssimg”的子文件夹。
现在,如果你想使用你提到的图像,你可以像这样引用它:“〜/ prjfiles / public / cssimg / error.png”(以root开头的路径)或“./cssimg/error.png”如果您来自公共文件夹中的页面(相对路径)。
但实际上,你做的工作太多了。以下是如何以更少的努力使其工作:
创建您的WebSite,右键单击该项目并添加名为“cssimg”的文件夹。
像处理“公共”文件夹一样处理根目录 - 根据需要将页面放在根目录或子文件夹中。您现在可以引用相同的图像文件:“./ cssimg / error.png”(相对)或“〜/ cssimg / error.png”(从根开始)
还有另一种方法可以告诉引擎在哪里查找资源,但它适用于您的css文件。在“head”标签内,你可以添加一个“style”元素(type =“text / css”),在里面你可以添加如下内容:@import'&lt;%= ResolveUrl(“〜/ prjfiles / public /cssimg/styles.css“)%&gt;';
祝你好运!
答案 5 :(得分:1)
如果我正确理解了您的问题,那么您正在尝试查找未物理存储在文件系统文件夹中的文件,或者保留在其他文件夹中。您可以通过实施UrlRewrite
机制来处理这些问题。
我建议您阅读URL Rewriting in ASP.NET,之后,请先了解此实施:A Complete URL Rewriting Solution for ASP.NET 2.0。
答案 6 :(得分:0)
如果我理解了这一切(请对任何更正进行评论),现在所有文件都在根目录中,并且您使用<img src="/img.png" />
并且它可以正常工作。
如果是这种情况,请在图像所在的目录中创建另一个目录,比如调用该目录images
并将图像文件放在那里。现在使用<img src="/images/img.png" />
。
完成。