2

在 DotNetNuke 5.x 安装中是否有推荐的存储静态资源(图像、css、js 等)的位置?

有 /images 和 /js 文件夹以及包含资源的 /Resources 文件夹。由于 MicrosoftAjax.js 位于多个位置(但可能是不同的版本?),因此似乎存在一些重叠。我还可以将资源放在 /DesktopModule/ModuleX 位置。

有谁知道使用这些文件夹是否有区别?

我有点喜欢所有静态资源都在一个公共文件夹(/Resources)下的想法,这样我就可以在一个地方设置缓存规则头、权限等。

有没有人使用单独的图像服务器来提供 DotNetNuke 静态内容? 单独的图像服务器(例如 images.mydomain.com)的优缺点?

4

2 回答 2

4

如果您拥有整个 DNN 安装,那么将所有资源整合到一个位置肯定是有意义的(无论是 DNN 使用的 Resources 文件夹,还是 DNN 不知道的另一个文件夹)。如果您正在开发一个将安装到您不完全拥有的站点上的模块,那么需要考虑的做法是将您的资源限制在您的模块的 DesktopModules 文件夹中。

关于 DNN 文件夹需要考虑的一些事项:

  • 如果您在某个模块的文件夹下有内容,卸载该模块将为您提供删除该内容的选项。这可以帮助您保持干净和有条理,或者如果您有多个模块定义共享相同的文件,这可能会很危险......(更危险的可能是卸载 SQL 脚本;确保您不会意外卸载一个附加了卸载脚本的模块)
  • 您可以使用 DNN 文件管理器在 Portals 目录中上传/删除/重命名文件,因此如果站点管理员应该控制它们,将文件放在那里可能是有意义的
  • 将内容放在模块文件夹之外会使链接更加困难(特别是如果它位于特定于门户的文件夹中,即您每次都必须向 PortalSettings 对象询问路径)
  • 将资源保留在模块文件夹之外的情况并不常见,因此如果您将经验丰富的 DNN 开发人员带入项目中,可能会造成混乱
于 2010-05-04T14:44:51.490 回答
1

对于皮肤和容器,您可以在 Portals 目录下使用它们自己的文件夹。正如bdukes所说,通过这种方式,站点管理员可以在 DNN 中控制它们。

对于模块,我使用了模块的文件夹和 module.css 作为可以被皮肤或容器 css 覆盖的默认值。这是因为皮肤和容器 css 是在 module.css 之后加载的。

于 2010-05-08T09:31:14.200 回答