- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
使用:CF10 和 IIS7.5
我的网站中有一个名为“预订”的部分。它的位置是这样的:
c:\inetpub\wwwroot\mysite\bookings
在此文件夹中将是子文件夹,最终是网页本身。这是一个例子:
c:\inetpub\wwwroot\mysite\bookings\holidays\new.cfm
c:\inetpub\wwwroot\mysite\bookings\carhire\edit.cfm
我在每个网页中包括(使用 <cfinclude>
)另一个页面,根据调用它的页面显示不同的链接。我只想知道“预订”文件夹之前的目录。像这样(伪代码):
<cfset whereAmI = #GetDirectoryFromPath(GetBaseTemplatePath())#>
<cfif #whereAmI# EQ "C:\inetpub\wwwroot\mysite\bookings">
<h1>Booking Section Links</h1>
</cfif>
以上代码仅在用户访问 bookings/index.cfm
时有效“预订”文件夹的页面。但如果他们去 bookings/holidays/new.cfm
页面,它现在位于 holidays
文件夹所以 <h1>
内容不会出现。我真的只想检查 bookings 文件夹中的任何页面,即使它位于 bookings 文件夹的子文件夹中。有点像在 SQL 中我可以说 IF #GetDirectoryFromPath(GetBaseTemplatePath())# LIKE 'c:\inetpub\wwwroot\mysite\bookings%'
所以它的末尾有一个通配符。
我知道这个问题会激怒 MVC 框架的拥护者,但请原谅我!
最佳答案
这是解决您的问题的一种快速、简单的方法(可能无法随着系统的扩展而工作 - 但应该让您开始走上正确的道路)。
<cfset whereAmI = GetDirectoryFromPath(GetBaseTemplatePath())>
<cfif whereAmI CONTAINS "C:\inetpub\wwwroot\mysite\bookings">
<h1>Booking Section Links</h1>
</cfif>
请注意,我从 cfset
和 cfif
中删除了 #
,您在那里不需要它们。
您甚至可以缩减路径以仅使用“mysite\bookings”。
理想情况下,这应该被包装到一个函数中,这样您就可以轻松地将不同的路径传递给它以确定您是否在给定页面上。或者,甚至可能在 Application.cfc 的 onRequestStart
中确定“父”文件夹并将其设置为请求范围变量。
如果您在基于 *nix 的系统上运行代码,则需要对此进行调整。
关于coldfusion - 如何仅获取特定文件夹的目录路径?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21405211/
我是一名优秀的程序员,十分优秀!