从子文件夹而不是Web根运行CFWheels站点

时间:2011-03-24 18:08:52

标签: frameworks coldfusion cfwheels

我的CFWheels网站正在web根目录下的子文件夹/下运行,我的web.config与子文件夹/处于同一级别。在我的web.config中,我有必要的URL重写规则来从URL中删除“subfolder / index.cfm /”。

当我尝试使用

从默认的“javascripts”文件夹中包含Javascript文件时出现问题
javaScriptIncludeTag("script.js")

默认情况下,cfwheels在/ subfolder / javascripts /中查找JS文件。但是,我已从URL中删除了子文件夹/,因此对/subfolder/javascripts/script.js的请求失败,并显示以下错误消息:

  

Wheels.ViewNotFound

     

无法在子文件夹控制器中找到javascripts操作的视图页面。

伪造。 “javascripts”和“子文件夹”不是动作和控制器。

我相信对/javscripts/script.js的请求会成功。如何告诉cfwheels不要在子文件夹/?

中查找javascripts /文件夹

我无法在文档中找到答案,我也没有对CFWheels Google Group做出任何回应。我正在寻找答案such as this,但具体针对CFWheels。

修改
IIS 7 web.config重写:

<rule name="Remove subfolder/index.cfm">
    <match url="(.*)" />
    <action type="Rewrite" url="/subfolder/index.cfm/{R:0}" />
</rule>

如果此规则不正确,我的问题可能就在这里,我不确定。

linkTo()实际上也链接到了错误的路径。

linkTo(text="Say Hello", controller="say", action="hello")

输出

<a href="http://mysite.com/subfolder/index.cfm/say/hello">Say Hello</a>

1 个答案:

答案 0 :(得分:1)

我认为问题在于你忘记否定cfwheels的javascript和其他文件夹。

我做了一段时间后写了封面:

http://rip747.wordpress.com/2009/02/23/cfwheels-url-rewriting-in-a-subfolder/

虽然这是针对不同的网址重写器,但我确信您可以将规则移植到IIS7。