C# ASP.NET从不同路径链接到资源(img、css、js)
我刚接触ASP.NET,并在.NET4.0中浏览了我的第一个ASP Web应用程序项目 我有一个我无法解决的问题,谷歌搜索也不能带来任何快乐 因此,我希望获得以下问题的帮助和/或解释: 假设我建立了以下项目结构:C# ASP.NET从不同路径链接到资源(img、css、js),c#,asp.net,html,C#,Asp.net,Html,我刚接触ASP.NET,并在.NET4.0中浏览了我的第一个ASP Web应用程序项目 我有一个我无法解决的问题,谷歌搜索也不能带来任何快乐 因此,我希望获得以下问题的帮助和/或解释: 假设我建立了以下项目结构: \default.aspx \[gfx] (dir) \[images] \picture.jpg \[css] \stylesheet.css \[js] \jquery.js \[backend] \main.aspx 因此,
\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开发人员,我总是链接到资源的完整路径,例如:
![](“gfx/images/picture.jpg”/)
致以最诚挚的问候你所做的是最常用的方式。您可以使用完整路径,但大多数情况下您希望使用相对路径。这样,如果您的URL发生更改,您的站点不会中断
例如,如果您的站点是“www.mysite.net”,并且您的图像指向“www.mysite.net/images/someimage.png”,然后您将站点更改为“www.someothersite.com”,则您的站点将中断。但是,如果您使用“/images/someimage.png”,它将不会中断。您所做的是通常的做法。您可以使用完整路径,但大多数情况下您希望使用相对路径。这样,如果您的URL发生更改,您的站点不会中断
例如,如果您的站点是“www.mysite.net”,并且您的图像指向“www.mysite.net/images/someimage.png”,然后您将站点更改为“www.someothersite.com”,则您的站点将中断。但是,如果您使用“/images/someimage.png”,它不会中断。如果您是从CSS显示图像,请尝试从那里使用它。例如创建一个样式目录,内部样式创建一个图像,并将所有要在CSS中使用的图像放入其中 像
对于常规图像,在根目录中创建一个文件夹images,并将所有要在不使用CSS的情况下渲染的图像放入其中。在需要使用这些图像的地方,只需拖放图像,VS将完成其余操作。如果需要从Codebehing以编程方式进行设置,请在标记中添加runat=“server”。仅此而已。如果您正在显示来自CSS的图像,请尝试从那里使用它。例如创建一个样式目录,内部样式创建一个图像,并将所有要在CSS中使用的图像放入其中 像
对于常规图像,在根目录中创建一个文件夹images,并将所有要在不使用CSS的情况下渲染的图像放入其中。在需要使用这些图像的地方,只需拖放图像,VS将完成其余操作。如果需要从Codebehing以编程方式进行设置,请在标记中添加runat=“server”。仅此而已。大多数情况下,如果使用
~
运算符,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>
/gfx/images/picture.jpg“>
使用后一种技术有几个优点,因为它被渲染为绝对路径(稍微快一点)
如果您希望放置来自不同服务器的静态内容,则可以在某种意义上进行配置。大多数情况下使用
~
运算符,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>
/gfx/images/picture.jpg“>
使用后一种技术有几个优点,因为它被渲染为绝对路径(稍微快一点)
如果您想放置来自不同服务器的静态内容,可以在某种意义上进行配置。您已经用正确的方式进行了!当您将站点发布到服务器时,该链接将是完整的链接,就像在php中一样您已经用正确的方式完成了!当您将站点发布到服务器时,该链接将是完整的链接,就像在php中一样,您可以创建一个设计时样式表。这对于制作用户控件非常方便。这里已经描述了这个过程;
您可以制作设计时样式表。这对于制作用户控件非常方便。这里已经描述了这个过程;