1

我正在使用带有文本的 require.js 文本插件!将 xhr 响应呈现为 html 的语法。

text       : 'libs/require/text' ...

在我看来,我将它们定义为

define([
    'text!templates/categories.html'
    , 'models/Categories'
    , 'views/CategoryView'
    ], ...

一切都在本地正常运行。

但是,当我将此代码推送到服务器时,它开始将 *.html 作为<script></script>元素加载。

此外,它还在 .html 文件名上附加了一个 .js 扩展名。

有什么想法吗?正在加载的资产是 CORS。

4

1 回答 1

0

通过强制文本修复了问题!插件配置为始终执行 CORS。

为此,我添加了以下内容:

 require.config({
     text: {
          useXhr: function (u,p,h,p) {
               return true;
           }
      }, ...

我对 CORS 问题的猜测是正确的。直到我将其缩小到文本插件,我才看到它正在尝试在本地加载资产。

我也可以通过执行以下操作来解决这个问题。

define([
'text!http://location.com/to/external/domain/aka/cors/templates/categories.html'
, 'models/Categories'
, 'views/CategoryView'
], ...

我明确告诉 require 和文本插件从远处加载这些文件。

埃里克

于 2012-06-12T18:31:19.843 回答