2

我正在处理的项目在 CSS 文件中有硬编码的 URL,如下所示:

a.edit
{
    background: url(/TestSite/Images/Edit.png) no-repeat top left;
    display: inline-block;
    width: 16px;
    height: 16px;
    padding:1px;
    margin:1px;
    text-indent: -9999px; /* hides the link text */
}

当站点转移到生产环境时,这些链接会中断。我正在寻找一种解决方案,因此它只适用于网站运行的任何地方。

这是我想出的,它有效,但我想知道是否有更好的方法:

<script>
    $(document).ready(function () {
        $("a.edit").css('background', 'url(' + $("body").data("baseurl") + 'Images/Edit.png) no-repeat top left');
    });
</script>
<body data-baseurl="~/">...</body>
4

4 回答 4

7

CSS 处理相对于样式表所在位置的相对 URL。利用这一点,不要在 javascript 中重写 URL。

于 2012-05-21T17:05:21.453 回答
3

在生产和开发服务器上使用相同的文件夹结构。并使用相对路径

于 2012-05-21T17:04:43.777 回答
2

真的不明白你面临的问题是什么。使用相对路径而不是绝对路径,无论托管服务提供商如何,您都会很好...

顺便说一句,还有一件事要考虑 - 如果客户端关闭 javascript 怎么办?;)

于 2012-05-21T17:04:24.387 回答
1

相对 URL怎么样?

a.edit
{
    background: url(Images/Edit.png) no-repeat top left;
    ...
}
于 2012-05-21T17:04:51.827 回答