ASP.NET链接到不同路径的资源(img,css,js)

时间:2011-02-28 14:09:12

标签: c# asp.net html

我刚接触ASP.NET并且在.NET 4.0中开始使用我的第一个ASP Web应用程序项目 我有问题,我无法解决,谷歌搜索没有带来任何快乐。

所以我会请求帮助和/或解释以下问题:

假设我已经设置了以下项目结构:

\default.aspx
\[gfx] (dir)
   \[images]
     \picture.jpg
   \[css]
     \stylesheet.css
   \[js]
     \jquery.js
\[backend]
   \main.aspx

所以,在 default.aspx 中,我可以像这样链接到图片或css:

     < img src="/gfx/images/picture.jpg">
     < link rel="stylesheet" type="text/css" href="/gfx/css/stylesheet.css"/>

它有效,但我担心这种连接技术不是“正确的”。是的 - 它有效并且链接,但是因为我是PHP开发人员,所以我总是链接到资源的完整路径,例如:          &LT; img src =“gfx / images / picture.jpg”/&gt; 哪个被翻译成了          &LT; img src =“http://www.mysite.com/gfx/images/picture.jpg”/&gt;

有没有办法在ASP.NET中实现类似的结果而不会丢失visual studio中的设计预览?我的链接技术是常见的还是另一种方式?

祝你好运

5 个答案:

答案 0 :(得分:1)

主要使用~运算符,asp.net会自动将其映射到应用程序的根目录。

<head runat="server">
<img src="~/gfx/images/picture.jpg">
<link rel="stylesheet" type="text/css" href="~/gfx/css/stylesheet.css"/>
</head>

您也可以在变量中使用应用程序根路径并可以使用。例如

<head>
<img src="<%=SomeClass.SITEURL%>/gfx/images/picture.jpg">
<link rel="stylesheet" type="text/css" href="~/gfx/css/stylesheet.css"/>
</head>

后来技术的使用有一些优点,因为它被渲染为绝对路径(一点点快) 如果你想从不同的服务器放置静态内容,可以在某种意义上进行配置。

答案 1 :(得分:0)

你正在做的是做这件事的常用方法。您可以使用完整路径,但大多数时候您想使用相对路径。这样,如果您的网址发生变化,您的网站就不会中断。

例如,如果您的网站是“www.mysite.net”并且您的图片指向“www.mysite.net/images/someimage.png”,之后您将网站更改为“www.someothersite.com”网站将破裂。但是,如果你使用“/images/someimage.png”它就不会破坏。

答案 2 :(得分:0)

如果要显示CSS中的图像,请尝试从那里使用它。例如。创建样式目录,在内部样式中创建图像并放置将在CSS中使用的所有图像。

喜欢

.div
{
  background-image:url('images/abc.png');
  color:#24543F;
}

对于一般图像,在根目录中创建一个文件夹图像,并将所有图像放在不使用CSS的情况下进行渲染。你需要使用那些图像只需拖放图像,VS将完成剩下的工作。如果需要以编程方式从Codebehing中设置它,请在标记中添加runat =“server”。就是这样。

答案 3 :(得分:0)

你已经以正确的方式做到了!当您将站点发布到服务器时,链接将是完整链接,如php

答案 4 :(得分:0)

你可以做一个设计时样式表。这对于进行用户控制非常方便。这个过程已经在这里描述; How to make user controls know about css classes in ASP.NET