我的客户拥有多家公司;不同的名称/ Logo 等,但除所述名称/ Logo 外,网站上的所有内容都是相同的。
在 ColdFusion 环境中,对我来说提供相同内容并即时交换 Logo /公司名称以便我可以将所有内容保留在一个位置的最佳方式是什么?这是一个 jQuery 解决方案吗?正则表达式?或者 ColdFusion 能让我根据 url 和 session 变量以有效的方式部署它吗?
最佳答案
我会推荐类似于@Ben Doom建议的东西;尽管不存储在 session 范围内。相反,我建议使用应用程序范围。没有理由让每个用户的 session 一遍又一遍地重复相同的信息。
通过给两个不同的应用程序名称赋予不同的应用程序名称,您可以从同一代码库运行 2 个不同的“应用程序”(基本上只是不同的地址空间)。正如 Ben 所建议的,我将根据 CGI 变量来命名应用程序。使用哈希将保证该值可以安全地用作应用程序名称,但不会那么容易打开。
Application.cfc:
component {
this.name = hash(cgi.server_name);
}
并非所有 CGI 变量都是安全的——有些变量可以由用户修改(引用者、ip 等),所以如果您要使用其中之一,我建议像我一样对其进行哈希处理上面的内容是为了确保在这里使用它是安全的...但是如果您使用安全值之一(例如 cgi.server_name),那么您应该可以安全地使用它而无需进行散列/等操作。
在这种情况下,设置显示主题以切换正在运行的应用程序会更容易:
Application.cfc:
component {
this.name = cgi.server_name;
}
index.cfm:
<cfimport prefix="custom" taglib="#expandPath('./layouts')#" />
<custom:layout theme="#application.applicationname#">
<!--- your content here --->
</custom:layout>
layouts/layout.cfm:
<cfparam name="attributes.theme" default="www.site1.com" />
<cfif attributes.theme eq "www.site1.com">
<!--- include content for this theme --->
<cfelse>
<!--- include content for this theme --->
</cfif>
(在Win7/IIS7上测试)
关于jquery - 在 ColdFusion 中为两家公司部署一个站点的最佳方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070742/