You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何创建DNN Widget?安装时文件缺失错误求助

DNN Widget 安装文件找不到错误解决

问题背景

我理解DNN Widget是通过模块或主题将JS添加到网站所有页面的方式,对吗?我的目标是将JS添加到门户所有页面,优先选择无需手动添加到每个页面的模块实现,Widget似乎比“在所有页面显示模块”的方案更优。

最初按照官方文档配置,将YourCompany.Widgets.SampleWidget.js文件添加到现有DNN模块根目录,并在.dnn清单文件的components标签内添加组件:

<component type="Widget">
  <widgetFiles>
    <basePath>YourCompany</basePath>
    <widgetFile>
      <name>YourCompany.Widgets.SampleWidget.js</name>
    </widgetFile>
    <widgetFile>
      <name>license.txt</name>
    </widgetFile>  
    <widgetFile>
      <name>releasenotes.txt</name>
    </widgetFile>
  </widgetFiles>
</component>

安装时出现错误:

Failure File specified in the dnn could not be found in the zip file: - D:\Projects\website.com.ua\Host\Install\Temp\vp1vioj1\YourCompany.Widgets.SampleWidget.js

其中vp1vioj1是每次安装生成的唯一ID。

之后将Widget组件放在另一个package标签内:

<dotnetnuke type="Package" version="5.0">
  <packages>
    <package name="ModuleName" type="Module" version="00.00.01">
      <!-- some module content here -->
    </package>

    <package name="YourCompany.SampleWidget" type="Widget" version="00.00.01">
      <components>
        <component type="Widget">
          <widgetFiles>
            <basePath>YourCompany</basePath>
            <widgetFile>
              <name>YourCompany.Widgets.SampleWidget.js</name>
            </widgetFile>
          </widgetFiles>
        </component>
      </components>
    </package>
  </packages>
</dotnetnuke>

但仍出现相同错误,找不到更多Widget相关文档,恳请帮忙解决。

解决方案

1. 匹配压缩包内文件路径与清单配置

DNN会根据basePath和widgetFile/name拼接路径查找文件,你需要确保压缩包内的文件结构和配置完全对应:

  • 若basePath设为YourCompany,压缩包内必须存在YourCompany文件夹,且YourCompany.Widgets.SampleWidget.js、license.txt等文件要放在这个文件夹内,而非模块根目录。
  • 错误提示显示DNN在临时目录的YourCompany路径下查找文件,说明你的压缩包可能未将文件嵌套到指定文件夹,而是直接放在了根目录。

2. 修正文件结构与清单

正确的压缩包结构示例:

模块安装包.zip
├── 模块核心文件/
└── YourCompany/
    ├── YourCompany.Widgets.SampleWidget.js
    ├── license.txt
    └── releasenotes.txt

对应的模块同包清单配置保持原代码即可,无需额外修改。

3. 验证打包完整性

  • 打开安装压缩包,确认YourCompany文件夹及其内部文件均已被正确打包,无遗漏。
  • 注意DNN对路径大小写敏感(尤其非Windows服务器环境),确保文件名、文件夹名与清单配置的大小写完全一致。

4. 单独打包Widget(可选)

若不想与模块同包,可单独创建Widget安装包:

  • 压缩包仅包含YourCompany文件夹和.dnn清单文件。
  • 清单使用单独的Widget包配置(即你第二次尝试的代码结构)。

5. 安装后启用Widget

安装成功后,需在DNN后台的Widget管理中找到你的Widget,设置其加载范围(如所有页面),JS才会在目标页面自动加载。

内容的提问来源于stack exchange,提问作者Constantine Ketskalo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 14:24:17