引用JS文件提示登录

时间:2014-02-01 00:31:24

标签: kentico

我想引用页面模板底部的javascript文件。

我在cmssitemanager / development / javascript文件下添加了.js文件,然后将以下内容添加到主模板(门户引擎)中:

<script src="/CMSScripts/Custom/FOO/BAR.js"></script>

当我在任何浏览器中打开页面时,文件中的javascript都没有执行。

当尝试直接在浏览器domain.com/CMSScripts/Custom/FOO/BAR.js访问该文件时,我会被重定向到Kentico登录页面。

我不知道如何/在哪里可以为CMSScripts目录指定安全性,但用户不必登录即可访问此文件。

有什么建议吗?

使用第一个回答的信息

更新

  1. 我们目前没有使用Windows身份验证,并且我验证了应用程序池用户帐户具有文件系统权限。我还验证了应用程序可以使用cmssitemanager > administration > system > files > "test files"实用程序添加/删除/修改文件,这导致创建/删除/修改文件夹和文件的OK状态。

  2. 我已Check files permission签入cmssitemanager > settings > system > files > security。取消选中此选项不会更改行为,包括重新启动应用程序和Windows服务后。

  3. 该网站有效且拥有正确的许可,但未定义域别名。我添加了一个,但这没有改变行为。

  4. 我们没有对连接字符串信息的web.config保存进行任何更改。如果你在web.config中引用CMSUseTrailingSlashOnlyForExtensionLess上的this documentation,那么以前就没有这个,但添加它并没有改变任何东西。为此,我没有看到网站尝试重定向到domain.com/CMSScripts/Custom/FOO/BAR.js/,所以我真的认为它与某种安全ACL无关。

2 个答案:

答案 0 :(得分:1)

以下是用户FroggEye在同一问题Kentico DevNet论坛帖子中提供的解决方案:

  

你最好的选择是使用下面的语法。 Kentico对所有目录进行URL处理,除非被排除,你必须从处理中排除CMSScripts目录并不难,但下面的代码是更好的解决方案。

     

<script src="/CMSPages/GetResource.ashx?scriptfile=/CMSScripts/Custom/FOO/BAR.js" type="text/javascript"></script>

     

这将做两件事:

     
      
  1. 为您提供一个标准的地方来呼叫资源(您也可以在这里获取样式表)
  2.   
  3. 允许您使用内置最小化功能。
  4.   

答案 1 :(得分:0)

查尔斯,

这是一种奇怪的行为,通常不这样做。

  1. 你有任何Windows认证吗?你可能在哪里删除匿名访问(在IIS中)到网站文件夹中的目录?

  2. 您是否已将Check Files权限设置为Kentico网站设置? (尽管我很确定不会影响对JS模块中JavaScript文件的请求)

  3. 它是一个有效的网站(在CMSSiteManager中启用并运行)和具有正确许可和别名的域名吗?

  4. 对web.config文件的任何自定义修改可能会更改httpHandlers或模块?您是否在web.config中运行了正确的无扩展名URL设置?