【问题标题】:Retreving images through a .resx vs static images in asp.net web app通过 .resx 与 asp.net Web 应用程序中的静态图像检索图像
【发布时间】:2012-08-11 02:25:57
【问题描述】:

我们目前的场景似乎是为 .resx 文件量身定做的,但我的理解有点模糊,我正在寻找一些钙化。

我们的 webApp 为我们的不同客户设置了不同的皮肤,但对于所有客户来说差异并不相同。我的意思是一个客户可能只想更改徽标,而另一个客户可能想更改徽标、一些按钮,也许还有背景颜色。

为了满足这个要求,我创建了一个 default.resx,其中包含我们的默认皮肤、所有元素图像、字符串和颜色代码。还有一个 client.resx,它只包含那些对客户端唯一的元素(不同的徽标和按钮)或其他任何东西。

然后我创建了一个资源管理器,它将检查 client.resx 中的资源,并将其返回到页面,如果资源不存在,那么它将从 default.resx 中检索图像。

其他开发人员之一说这样做效率低下,与其使用 .resx 文件,我们应该有一个图像文件夹树并重新工具资源管理器以使用图像路径位置而不是 .resx 资源。

我对如何通过 .resx 文件提供图像以及如何通过文件夹树提供图像知之甚少,因此无法反驳他的说法。我认为通过 .resx 和文件夹中的图像提供图像所需的时间充其量可以忽略不计,但我无法找到有关此的任何特定信息。重新设计资源管理器以按照他喜欢的方式进行操作不会花费太多时间,但我想在我将时间投入到这个过程之前确保他的声明是合法的。

作为旁注,我们正在谈论 100 多张图片。

【问题讨论】:

    标签: asp.net resources resource-management


    【解决方案1】:

    我想建议您让您的客户有机会更改 CSS 文件,而不是 resx 文件来更改背景/颜色/图像等。因此您将拥有一些客户可以覆盖的默认 CSS 文件(他们将有机会上传他们的 css 文件或只是在服务器上替换它)。在您的默认 CSS 中,您应该有 CSS 类,其中包含指向您的图像的链接作为背景(徽标等)。因此,如果客户想要更改徽标/图像/颜色 - 他们可以将一些图像放在服务器上 - 替换 CSS 文件并检查一切是否正常。 对于字符串,请继续使用 resx 文件。

    并回答您的问题:如果您将拥有 100 多张图像 - 我认为将文件放在某个文件夹而不是 resx 文件中会更好(您想将所有图像作为原始数据放入 resx 文件中,对吧?或者您将只有指向正确图像的链接)。如果文件将包含所有图像作为原始数据,则文件可能会很大,因此要解析它,您将需要大量 RAM。而且我不认为你会在一个地方需要它们,也许你会在一天中只显示一些图像,对,所以最好不要加载它。但是,如果您的所有图像都将显示在主页(或母版页等)上 - 如果您使用缓存,您将不会看到性能上有很大差异。

    【讨论】:

    • 感谢您的回复。我将 .resx 文件定位在 CSS 上,因为我们在 Windows 产品中具有相同的要求,并且我想为这两种产品使用相同的共享库。资源文件位于共享库中。我一直在将包含文件夹中的图像拖到位于同一文件夹中的 .resx 文件中,但没有从该文件夹中删除图像。考虑到这只是创建对图像的引用,因此我所做的只是加载引用而不是整个图像缓存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多