由于我被要求在公司的服务器下开发一个网站,我发现很难将资源重定向到该网站的根目录。如果我使用“/”指定根目录,则所有javascripts,images和css文件都可以在localhost中完美使用。但是,如果我尝试连接到公司的服务器,一切都会失败,因为包含该网站的所有材料的文件夹只是该服务器的子目录。我试图使用base链接到root 。它适用于javascript和图像但不知何故css文件无法使用。当我使用inspect元素时,css的链接似乎是../../stylesheet/some.css,而javascript的源代码似乎是javascript / master.js。我想知道是否有人可以帮助我解决问题,因为网站在子文件夹数量方面相当复杂,我不可能使用.. / .. / .. / ....来引用资源。以下是我的项目的结构。
答案 0 :(得分:1)
在.aspx中 使用HttpRequest.ApplicationPath(ref MSDN)
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
Label1.Text = Request.ApplicationPath;
Image1.ImageUrl = Request.ApplicationPath + "/images/Image1.gif";
Label2.Text = Image1.ImageUrl;
}
</script>
在.cs 使用Server.MapPath(“〜/ bin”)
答案 1 :(得分:0)
似乎很难实现这一目标。我将使用的方法是将文件夹复制到路径。自&#34; /&#34;指向该服务器的根目录,似乎这种方法更直接。 我添加了一个appsetting。
<appSettings>
<add key="link" value="/a/b/c/d/e/myfolder/"/>
</appSettings>
每当我需要引用资源时,我都会使用appsetting中的变量来获取路径。例如,
<link rel="stylesheet" href="<%= ConfigurationManager.AppSettings["link"] %>stylesheet/master.css" />
这不是最好的解决方案,但我认为它很容易达到目的,并且易于维护,所以我只是在这里发布。