不确定我在这里的内容是否可以通过aspnet_compiler.exe工具实现,但是这里是:
我们有一个网站,我们允许用户修改母版页 - 或者说,我们不允许他们直接修改它们,我们给他们一个减少的“标记”样式语言,他们可以用来修改它们这些页面的HTML,所以他们可以基本上“皮肤”该网站看起来像他们自己的前端。
我渴望通过预编译视图和aspx页面来尝试优化网站。但我希望那些视图和页面使用的布局和母版页保持可更新。但是,我无法让它工作......
假设我们有以下aspx页面:
<%@ Page Title="Hello World" MasterPageFile="~/Skinable/Skin.Master" Language="C#" AutoEventWireup="true" CodeBehind="HelloWorld.aspx.cs" Inherits="Project.HelloWorld" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Content" Runat="server">
Hello World!
</asp:Content>
其中引用了Skin.Master
文件夹中的母版页文件Skinable
。 Skin.Master
需要更新。这是我尝试过的:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe -v / -p d:\SourceFolder d:\CompiledSite
-x Skinable
),那么该文件夹不会被复制到输出文件夹,但主页仍然被编译到bin文件夹(即,生成一个skin.master.compiled
文件)构建文件夹)。当我们将母版页复制到部署文件夹时,对该文件的更改将被忽略(它只是在编译时使用了母版页)。attrib
+h d:\SourceFolder\Skinable
)之前隐藏了Skinable文件夹,那么我得到与上面相同的结果(即通过-x标志排除时)我怀疑对母版页的引用是这里的问题 - 也就是说,如果一个页面引用了一个母版页,那么如果你想编译页面,那么该母版页也必须编译,但我不确定。我在这里躲起来了吗?
如果你采取不同的方式怎么办?如果您“捕获”了他们的html和css更改,然后为该公司创建了新的css文件夹或文件,该怎么办? (文件是原始文件加上他们的更改。然后当加载母版页时,它从数据库中提取公司使用的文件或文件夹,并从母版页的c#中将其写入css?
过程就像:
实质上,这使得css更改在运行时基于客户端加载,您不必担心编译。
我们成功地使用这个过程来剥离不同的颜色。我们的文件夹系统如下: