我们目前的场景似乎是为.resx文件量身定制的,但我的理解有点模糊,我正在寻找一些钙化。
对于不同的客户端,我们的 webApp 的皮肤不同,但并非所有客户端的差异都相同。我的意思是一个客户可能只想更改徽标,而另一个客户可能只想更改徽标,一些按钮,也许还有背景颜色。
为了满足这一要求,我创建了一个default.resx,其中包含我们的默认皮肤,所有元素图像,字符串和颜色代码。以及一个client.resx,它只包含客户独有的元素(不同的徽标和按钮)或其他任何东西。
然后,我创建了一个资源管理器,它将检查 client.resx 中的资源,并将其返回到页面,如果资源不存在,它将从 default.resx 检索图像。
其他开发人员之一说这是低效的,而不是使用.resx文件,我们应该有一个图像文件夹树,并重新工具资源管理器以使用图像路径位置而不是.resx资源。
我对如何通过 .resx 文件提供图像以及如何通过文件夹树提供图像知之甚少,无法反驳他的说法。我认为通过 .resx 与文件夹中的图像服务器图像所需的时间充其量可以忽略不计,但我无法找到有关此的任何特定信息。重新设计资源管理器以按照他喜欢的方式进行重新设计不会花费太多时间,但我想在我投入时间之前确保他的主张是合法的。
作为旁注,我们正在谈论100 +可以非常的图像。
我想建议您让客户有机会更改 CSS 文件,而不是 resx 文件来更改背景/颜色/图像等。因此,您将拥有一些客户可以覆盖的默认CSS文件(他们将有机会上传他们的css文件或只是在服务器上替换它)。在默认的CSS中,你应该有CSS类,其中包含指向图像的链接作为背景(徽标等)。因此,如果客户想要更改徽标/图像/颜色 - 他们可以将一些图像放在服务器上 - 替换CSS文件并检查一切是否正常。对于字符串,只需继续使用 resx 文件即可。
并回答您的问题:如果您有 100+ 张图像 - 我认为最好将文件放在某个文件夹中而不是 resx 文件中(您想将所有图像作为原始数据放入 resx 文件,对吧?或者您将只有指向正确图像的链接)。如果文件将所有图像作为原始数据包含,则文件可能会很大,因此要解析它,您将需要大量RAM。而且我不认为您将需要将它们全部放在一个地方,也许有些图像您会在一天中显示几次,对,所以最好不要加载它。但是,如果您的所有图像都显示在主页(或母版页等)上 - 如果您使用缓存,则不会看到性能的很大差异。