【问题标题】:ASP.NET Linking to resources (img, css, js) from different pathsASP.NET 从不同路径链接到资源(img、css、js)
【发布时间】:2011-07-05 19:24:00
【问题描述】:

我是 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 开发人员,我总是链接到资源的完整路径,例如: 哪个被翻译成

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

最好的问候

【问题讨论】:

    标签: c# asp.net html


    【解决方案1】:

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

    例如,如果您的站点是“www.mysite.net”并且您的图像指向“www.mysite.net/images/someimage.png”,然后您将站点更改为“www.someothersite.com”,则您的网站将中断。但是,如果您使用“/images/someimage.png”,它不会中断。

    【讨论】:

      【解决方案2】:

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

      喜欢

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

      对于一般图像,在根目录下创建一个文件夹 images 并将所有要在没有 CSS 的情况下渲染的图像放入其中。在您需要使用这些图像的地方只需拖放图像,VS 将完成剩下的工作。如果您需要从 Codebehin 以编程方式设置它,请在标签中添加 runat="server"。就是这样。

      【讨论】:

        【解决方案3】:

        主要使用~ 运算符,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>
        

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

        【讨论】:

          【解决方案4】:

          你已经在做正确的事情了!当您将网站发布到您的服务器时,链接将是完整的链接,如 php

          【讨论】:

            【解决方案5】:

            你可以做一个设计时样式表。当您制作用户控件时,这非常方便。该过程已在此处描述; How to make user controls know about css classes in ASP.NET

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2018-06-05
              • 2014-11-02
              • 1970-01-01
              • 1970-01-01
              • 2019-12-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多