问题标签 [cassette]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - 开始使用 Cassette 时出现“未将对象引用设置为对象”
我正在尝试通过 NuGet开始使用Cassette 。我在我的应用程序中遇到了问题,所以我回滚并在一个新的空 ASP.NET MVC 3 Web 应用程序中尝试了它。
但是,问题仍然存在。按照文档页面“易于使用”,我根本无法让它工作。这是异常以及一些堆栈:
我只是按照文档中的两个步骤进行操作,这就是我得到的。我究竟做错了什么?
这是我的_Layout.cshtml
文件的样子:
c# - 从文件夹中删除文件时触发 Cassette.AssetReferenceException
我曾经在 .js 中有一个 .js 文件/Public/javascripts/jquery1.1js
。
一切正常,但后来我需要从我的项目中删除这个文件,所以我只是从 Visual Studio 的解决方案中删除了它。
现在,当我访问我的应用程序时,我得到:
“~/Public/javascripts/jquery.unobtrusive-ajax.js”中的参考错误,第 1 行。找不到“~/Public/javascripts/jquery-1.5.1.js”。“~/Public/javascripts/jquery.validate.unobtrusive.js”中的参考错误,第 1 行。找不到“~/Public/javascripts/jquery-1.5.1.js”。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:Cassette.AssetReferenceException:“~/Public/javascripts/jquery.unobtrusive-ajax.js”中的引用错误,第 1 行。找不到“~/Public/javascripts/jquery-1.5.1.js”。“~/Public/javascripts/jquery.validate.unobtrusive.js”中的参考错误,第 1 行。找不到“~/Public/javascripts/jquery-1.5.1.js”。
这是一个堆栈跟踪:
当然,我知道为什么会这样,Cassette 仍在尝试查找已删除的文件,但我不知道如何告诉 Cassette:“ Hey, this file is no longer relevant. Scan the folder again and rebuild a list of files you need to work with.
”
但我只是不知道如何做到这一点。
该文档没有提及这一点,只是暗示它应该为我自动执行此操作。
这是我的配置类:
在我的 _Layout.cshtml 文件中:
css - 有时 Cassette 不会重写背景图像规则
上下文: http: //getcassette.net/documentation/stylesheets
具体来说:
CSS 中的图像 URL 被重写。例如,文件 ~/styles/main.css,其内容为:
转化为:
现在在我的特殊情况下,例如,在我的 .less 文件中,我可能有这样的规则:
并且 Cassette 应该重写它并且浏览器实际上接收到这个规则:
并且图像显示正常。
在这种特殊情况下,使用相同的想法,后台规则不会被盒式磁带重写,用户会收到我在 .less 文件中手动输入的常规规则。
以下是事实:
- 工作规则和非工作规则都在同一个 .less 文件中。
- 该图像正确地位于我的 Visual Studio 项目的文件夹
/Public/images
中。 - 使用 Google Chrome 网络工具,我可以看到规则是
background: url("/Public/image/blue-rib.png") no-repeat;
- 没有像 Cassette 那样重写。
关于这可能是什么原因的任何想法?
我尝试在 web.config 中更改为 debug=false,运行应用程序,但没有任何效果。
尝试切换回 debug=true 并且仍然没有骰子。
有什么建议么?
jquery - jquery 选择器不适用于使用 Cassette 的脚本标记内的元素
当尝试使用$("#index").data("onload")
I get back访问数据加载时'undefined'
:
没有周围的脚本标签一切正常。这是使用将其包装在脚本标签中的Cassette加载的。
我究竟做错了什么?
asp.net-mvc-3 - 盒式磁带抛出安全异常
我在具有中等信任安全级别的 Windows 2008 服务器上使用 Cassette 发布了 MVC 3 Web 应用程序(托管公司不允许我更改安全级别)。
根据这个链接,Cassette 在中等信任级别上运行,但是当我运行应用程序时,抛出以下异常:
安全异常:应用程序试图执行安全策略不允许的操作。要授予此应用程序所需的权限,请联系您的系统管理员或在配置文件中更改应用程序的信任级别。
[安全异常:请求失败。]
Cassette.CassetteApplicationContainer`1.CreateNewApplicationWhenFileSystemChanges(String rootDirectoryToWatch) +0
Cassette.CassetteApplicationContainerFactoryBase`1.CreateContainerFromConfiguration() +232
Cassette.Web.CassetteApplicationContainerFactory.CreateContainer() +21
Cassette.Web.StartUp.InitializeApplicationContainer() +22
Cassette.Web.StartUp.PostApplicationStart() +436
有谁知道如何解决这个问题或我做错了什么?
谢谢
.net - .Net 盒式磁带路径在生产中返回 404
我有当前的包参考在本地工作:
在开发站点上,这(以某种方式)通过以下方式解决:
问题是这是在生产中返回 404 但不确定原因。我虽然这可能是处理程序的配置问题,但我没有在配置(web.config)中设置一个,所以必须在内部发生一些事情才能导致问题。
这两个应用程序似乎都在运行.net 4+,有人可以帮忙吗?
javascript - 磁带资产管理器为 javascript 包返回的空内容
自从从 v1.1.0 升级到 v1.2.0 后,过去几周我遇到了 3 次磁带问题。我现在已经回滚到 v1.1.0 并且从那以后没有看到问题。
我有一个使用 .NET 4.0 在 IIS7 上运行的 c# 网站,该网站有多个由 Cassette 管理的 javascript 包。我们的卡带配置是:
在正常运行了几天后,突然其中一个 javascript 文件包开始返回一个空的 javascript 文件,这导致我的网站中断。我已经看到它发生在几个不同的捆绑包上,所以它不是一个特定的捆绑包失败。
我已经在磁带上进行了启动跟踪,除了我的 css 中缺少一些图像之外,没有看到任何东西出现在那里。
网站的每个页面至少有 2 个它引用的 js 包。一个捆绑包是特定于页面的,然后有一些通用捆绑包用于 jquery 等。
重建捆绑包似乎修复了一次,虽然其他时候我没有注意到它修复,直到我重新启动 IIS 中的应用程序池。
有谁知道是什么原因造成的?
谢谢。
asp.net - 在多个客户端请求期间,Cassette 的性能有多好?
我们正在考虑在我们的 asp.net Web 应用程序中使用 Cassette,它可能被数百名用户同时访问。Cassette 通过 HTTP 处理程序工作,该处理程序处理这样开始的请求:
我注意到在硬盘驱动器上没有创建任何包。看起来资源在运行时在内存中被编译和压缩并返回给用户。
这是否意味着 Cassette 依赖代理或 IIS 缓存,而不是浏览器缓存来处理其他用户对同一捆绑包的所有后续请求?添加到每个包响应是否Cache-Control: public
意味着 URL 的包将始终由 IIS/代理缓存,并且 Web 应用程序不会做双重工作?
asp.net-mvc-3 - 找不到包含路径“~/Public/stylesheets/main.less”的资产包
我尝试访问 Cassette 的调试页面以查看是什么,但我得到的只是一个空白页面(Firebug 说我收到了 404 标头)。真的不知道为什么:
我正在使用带有 Cassette 的 ASP.Net MVC3 进行资产捆绑和缩小。
在我的开发机器上一切正常,但是在部署到托管服务器时,这是我收到的消息:
“/”应用程序中的服务器错误。
找不到包含路径“~/Public/stylesheets/main.less”的资产包。
说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.ArgumentException:找不到包含路径“~/Public/stylesheets/main.less”的资产包。
再次:在我的开发机器上一切正常。
这是我的 CassetteConfiguration 文件:
在我的 _Layout.cshtml 文件中:
我正在使用来自 Vidahost 的共享“云”托管。
我可以采取哪些步骤来调试此问题?我整个下午都在研究它,到目前为止还没有开辟新天地。
谢谢!
asp.net-mvc-3 - Cassette.web、MVC 3、共享布局:以正确的顺序获取引用?
使用 Cassette.net、MVC 3、Razor、C#、相对位置和共享布局,如何在不修改原始 javascript 文件的情况下以正确的顺序获取引用?
在共享布局中,我这样引用 jQuery:
然后在视图中添加另一个参考:
myScript 依赖于 jQuery,但 Cassette 在 jQuery 前面引用了 myScript:
我觉得奇怪的是子页面中引用的脚本在父页面脚本之前呈现。
我看到您可以在脚本中添加符号,例如,/// <reference path="other.js" />
但我真的不想修改 javascript 代码来包含它。
更新:
我添加了
这至少将我的脚本放在 jQuery 脚本之后,@Bundles.RenderScripts("head");
并使用@Bundles.RenderScripts("body");
适当的标签。它似乎保持脚本的添加顺序。我仍然想知道如何使用某种类型的 Bundle.config 对这些脚本进行自定义排序,或者如何让父页面在使用共享布局的子页面之前对脚本进行排序。