我正在尝试将图像和样式表从用户控件移动到程序集中的嵌入资源。我使用 Reflector 看到图像和 .css 文件嵌入在程序集中,但是当我尝试使用 ClientScript.GetWebResourceUrl() 创建的 URL 访问它们时,找不到资源。我难住了。
程序集默认命名空间:
TestWebApp
文件的路径(标记为 BuildAction: Embedded Resource)是
TestWebApp/Resources/CSS/PaymentHistory.css
TestWebApp/Resources/Images/loading.gif
所以我的资源注册为:
[assembly: WebResource("TestWebApp.Resources.CSS.PaymentHistory.css", "text/css", PerformSubstitution = true)]
[assembly: WebResource("TestWebApp.Resources.Images.loading.gif", "image/gif")]
访问资源的用户控件(在同一程序集中):
TestWebApp.UserControls.PaymentHistory
为了简化,我目前只是试图引用图像而不是样式表。在我的用户控件的 Page_Load 中,我将 Image 控件的 ImageUrl 设置为资源 URL:
image1.ImageUrl = Page.ClientScript.GetWebResourceUrl(this.GetType(), "TestWebApp.Resources.Images.loading.gif");
在运行时,一切似乎都可以正常工作,但会呈现损坏的图像。这是渲染的图像源:
<img style="border-width:0px;" src="/WebResource.axd?d=8fC_1tLPjrUCxmFc_Q2MKY0-pHAak-sTWkpLLV3D56H_c08LujXC63ia2PNICE65_i-Q4JqprAigLpbrXG-rIAr6ePO4HHcdQKgdd3szlThv2gizxOJLJsPRNe-b_M6ApTwPsH_5oZAuONTN0cumOTRr1nA1&t=635133745137507721" id="ph1_image1">
如果我在浏览器中导航到该 URL,我会收到 404,找不到资源。我究竟做错了什么?
编辑: 一定有一些基本的东西我不理解和/或我正在做一些非常愚蠢的事情。这是一个简单的 VS 2010 示例。我已经按照我知道的所有必需的步骤嵌入 JScript1.js 并通过 WebResource.axd 访问它,但它得到了错误。