小编Dav*_*e L的帖子

我怎样才能让IIS在我的网站上正确地提供.webmanifest文件?

网站图标发电机组装包网站管理员,以便使用具有可用于许多不同的设备的图标.该页面附带一个名为的文件,该文件site.manifest通过网页文档中的以下标记链接<head>:

<link rel="manifest" href="site.webmanifest">
Run Code Online (Sandbox Code Playgroud)

根据Mozilla的说法:"Web应用程序清单在JSON文本文件中提供有关应用程序(如名称,作者,图标和描述)的信息.清单的目的是将Web应用程序安装到设备的主屏幕上,提供用户访问速度更快,体验更丰富."

不幸的是,如果您使用的是Microsoft的Internet信息服务(IIS),如果您尝试访问该site.webmanifest文件,则会收到404.3错误.

确切的错误消息如下:"由于扩展​​配置,无法提供您请求的页面.如果页面是脚本,请添加处理程序.如果要下载文件,请添加MIME映射."

如何正确地site.webmanifest在IIS中提供文件?

iis web-manifest

35
推荐指数
5
解决办法
1万
查看次数

允许不同的ColdFusion CFC相互实例的正确方法是什么?

关于在特定项目中需要相互交谈的CFC实例的正确方法,我有一个"最佳实践"问题.

比方说,您有一个Web应用程序,其中包含许多不同的模块:

  • 在线日历
  • 网上商城
  • 博客
  • 文件管理器(上传/下载/处理文件)
  • 用户帐户

这些模块中的每一个都组织得很好,以便与每个模块相关的功能包含在单独的CFC文件中:

  • Calendar.cfc
  • Store.cfc
  • Blog.cfc
  • Files.cfc
  • Users.cfc

每个CFC都包含适用于该特定模块的功能.例如,Users.cfc包含与开启/关闭用户,更新帐户信息等有关的功能......有时,CFC可能需要引用另一个CFC中的功能,例如,如果商店(Store.cfc)需要获取信息来自客户(Users.cfc).但是,我不确定实现这一目标的正确方法.我一直在玩几种方式让我的CFC互相引用:

方法1:在CFC中,例如您将需要的其他CFC:

<!--- Store.cfc --->
<cfcomponent>

<!--- instance all the CFC’s we will need here --->
<cfset usersCFC = CreateObject("component","users") />
<cfset filesCFC = CreateObject("component","files") />

<cffunction name="storeAction">

     <cfset var customerInfo = usersCFC.getUser(1) />
Run Code Online (Sandbox Code Playgroud)

这种方法似乎大部分时间都有效,除非一些实例化的CFC也实例化了它们的CFC.例如:如果Users.cfc实例Files.cfc和Files.cfc也是Users.cfc实例.由于某种类型的无限递归问题,我偶尔会遇到可怕的NULL NULL错误.

方法2:在CFC的函数范围内实例化所需的CFC(这似乎可以防止递归问题):

<!--- Store.cfc --->
<cfcomponent>

     <cffunction name="storeAction">

          <!--- create a struct to keep all this function’s variables --->
           <cfset var local = structNew() />

          <!--- instance all the CFC’s we will …
Run Code Online (Sandbox Code Playgroud)

coldfusion cfc

10
推荐指数
1
解决办法
534
查看次数

每月分期付款的发票数据库设计

这个问题是StackOverflow上已经回答的问题的扩展/扩展:发票的数据库设计

但是,我想扩展这个想法,并找出允许客户使用某种分期付款(月付款)系统支付发票的正确方法.

在回答的问题中,投票的答案使用了具有以下表格的数据库模式:

  1. 订单表:用于草稿/挂单
  2. 订单明细表:用于挂单的订单项
  3. 发票表:用于表示最终(不可变)订单和客户欠款.
  4. 付款表:当客户付款时,总金额就在这里.
  5. InvoicesPayments表:显示每笔付款应适用于特定发票的金额.此表是必需的,因为有时付款可以应用于多个发票.

(为了简化起见,因为这个问题的重点是表格设计,我省略了触发器等细节)

简化的数据库模式

如何将发票分成每月分期付款?要求如下:

  1. 在下订单时,客户将能够选择他们想要支付多少作为预付款,然后支付X个月分期付款,直到支付余额为止.
  2. 现在我们可以忽略利率等问题.
  3. 有时,客户将支付超过一个月的付款.例如,假设他们忘记支付一个月和下个月的费用,他们只需一次付款即可支付当月和过去一个月的费用.

我们非常感谢您提供的任何帮助/指导.谢谢!

- 下午更新 -

在考虑到目前为止的响应并自行修改之后,您如何看待如下的架构:

架构2.0

在上面提出的模式中,所有发票都有一个ScheduledPayments记录.如果发票全部到期(全额付清),那么它将有一条记录.如果发票是分期付款的,则每笔付款都会有X个记录(加上任何预付款).

然后,当进行支付时,将记录添加到支付表,并且将一个或多个记录添加到关系表"ScheduledPaymentsPayments",其将支付连接到发票和每月支付.

您如何看待这个解决方案?您是否预见到它有任何问题,或者您能否提出可能更好的替代方案?

mysql sql sql-server database-design

7
推荐指数
1
解决办法
4444
查看次数

ColdFusion 2016:你的网络根目录中有一个名为'api'或'rest'的文件夹吗?

我刚刚安装了ColdFusion 2016(从CF10升级),我注意到每当我尝试访问我的webroot中名为'api'的文件夹时,我都会收到内部500错误.

例如:www.mysite.com/api/

我假设这与新的ColdFusion API REST服务有关,所以我创建了另一个名为'rest'的目录,执行了相同的测试(www.mysite.com/rest/),并收到了另外500个错误.

查看IIS错误截图: 在此输入图像描述

奇怪的是,我没有使用ColdFusion REST服务,我没有在ColdFusion Administrator中启用它.

我的问题:

您是否允许在您的Web根目录中拥有名为"api"或"rest"的文件夹名称?或者这些是现在保留的文件夹名称?是否有解决方法来禁用特定站点的此功能,以便我可以使用这些文件夹名称?

iis coldfusion cfml coldfusion-2016

6
推荐指数
1
解决办法
617
查看次数

如何使构造函数方法可以使用WireBox注入的依赖项?

在这个例子中,我有一个叫做模型对象test.cfc具有相关性testService.cfc.

testWireBox testService通过属性声明注入.该对象如下所示:

component {

     property name="testService" inject="testService";

     /**
     *  Constructor
     */
     function init() {

         // do something in the test service
         testService.doSomething();

         return this;

     }

 }
Run Code Online (Sandbox Code Playgroud)

作为参考,testService有一个叫做doSomething()转储出一些文本的方法:

component
     singleton
{

     /**
     *  Constructor
     */
     function init() {

         return this;

     }


     /**
     *  Do Something
     */
     function doSomething() {

         writeDump( "something" );

     }

 }
Run Code Online (Sandbox Code Playgroud)

问题是,WireBox似乎testService在构造函数init()方法触发之后才会注入.所以,如果我在我的处理程序中运行它:

prc.test = wirebox.getInstance(
     name = "test"
);
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息: Error building: test …

coldfusion dependency-injection coldbox cfml wirebox

4
推荐指数
1
解决办法
152
查看次数

如何在 Coldbox 应用程序中使用 Cbauth 存储、检索和更新会话用户数据?

Cbauth是一个 Forgebox 模块,常用于 Coldbox 应用程序来处理用户身份验证。

要检索有关当前登录用户的信息,您可以调用auth().getUser()。此方法retrieveUserById()在应用程序定义的用户服务类中调用。在我的例子中,retrieveUserById()进入数据库,检索用户数据,然后返回一个组装的User实体对象。

在我的项目中,我想在每个页面上显示当前登录用户的名字和头像。我想避免在每个页面请求时都返回数据库,因为缓存至少一些用户数据(或者甚至整个User实体)会更有效。

Cbauth 中有没有办法在用户的会话范围内存储自定义数据,请求它,然后更新它(例如,如果用户在登录时更新他们的名字)

这是我迄今为止尝试过的:

根据文档,Cbauth 有一个调用的拦截器postAuthentication,它确实sessionStorage作为参数传递。我相信我可以利用它为当前用户存储额外的数据。但是,当我尝试user在拦截器中引用时,我收到一条Element USER is undefined in ARGUMENTS错误消息。

// After a user authenticates, store the user entity in the session (does not work)
function postAuthentication( user, sessionStorage, requestStorage ) {
    arguments.sessionStorage.user = arguments.user;
}
Run Code Online (Sandbox Code Playgroud)

此外,一旦存储缓存的会话数据,我就看不到任何方法来检索它。任何帮助或指向成功实施 Cbauth 示例的指针将不胜感激!

coldfusion coldbox cfml

3
推荐指数
1
解决办法
167
查看次数

如何在 IIS 上启用 HTTP/3?

新的 HTTP/3 协议应该比 HTTP/2 更快、更安全。如何在运行 IIS 网站的 Windows Server 上启用它?

iis windows-server http3

3
推荐指数
1
解决办法
1383
查看次数