我想引用页面模板底部的javascript文件。
我在cmssitemanager / development / javascript文件下添加了.js文件,然后将以下内容添加到主模板(门户引擎)中:
<script src="/CMSScripts/Custom/FOO/BAR.js"></script>
当我在任何浏览器中打开页面时,文件中的javascript都没有执行。
当尝试直接在浏览器domain.com/CMSScripts/Custom/FOO/BAR.js
访问该文件时,我会被重定向到Kentico登录页面。
我不知道如何/在哪里可以为CMSScripts目录指定安全性,但用户不必登录即可访问此文件。
有什么建议吗?
使用第一个回答的信息更新:
我们目前没有使用Windows身份验证,并且我验证了应用程序池用户帐户具有文件系统权限。我还验证了应用程序可以使用cmssitemanager > administration > system > files > "test files"
实用程序添加/删除/修改文件,这导致创建/删除/修改文件夹和文件的OK
状态。
我已Check files permission
签入cmssitemanager > settings > system > files > security
。取消选中此选项不会更改行为,包括重新启动应用程序和Windows服务后。
该网站有效且拥有正确的许可,但未定义域别名。我添加了一个,但这没有改变行为。
我们没有对连接字符串信息的web.config
保存进行任何更改。如果你在web.config中引用CMSUseTrailingSlashOnlyForExtensionLess
上的this documentation,那么以前就没有这个,但添加它并没有改变任何东西。为此,我没有看到网站尝试重定向到domain.com/CMSScripts/Custom/FOO/BAR.js/
,所以我真的认为它与某种安全ACL无关。
答案 0 :(得分:1)
以下是用户FroggEye
在同一问题Kentico DevNet论坛帖子中提供的解决方案:
你最好的选择是使用下面的语法。 Kentico对所有目录进行URL处理,除非被排除,你必须从处理中排除CMSScripts目录并不难,但下面的代码是更好的解决方案。
<script src="/CMSPages/GetResource.ashx?scriptfile=/CMSScripts/Custom/FOO/BAR.js" type="text/javascript"></script>
这将做两件事:
- 为您提供一个标准的地方来呼叫资源(您也可以在这里获取样式表)
- 允许您使用内置最小化功能。
醇>
答案 1 :(得分:0)
查尔斯,
这是一种奇怪的行为,通常不这样做。
你有任何Windows认证吗?你可能在哪里删除匿名访问(在IIS中)到网站文件夹中的目录?
您是否已将Check Files权限设置为Kentico网站设置? (尽管我很确定不会影响对JS模块中JavaScript文件的请求)
它是一个有效的网站(在CMSSiteManager中启用并运行)和具有正确许可和别名的域名吗?
对web.config文件的任何自定义修改可能会更改httpHandlers或模块?您是否在web.config中运行了正确的无扩展名URL设置?