如何创建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
相关产品推荐
相关产品推荐

