我刚接触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中的设计预览?我的链接技术是常见的还是另一种方式?
祝你好运
答案 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