Maj*_*ing 18 .net asp.net webforms aspnet-compiler
不确定我在这里的内容是否可以通过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>
Run Code Online (Sandbox Code Playgroud)
它引用母版页文件Skin.Master
中Skinable
的文件夹. Skin.Master
需要可更新.这是我尝试过的:
如果我只是使用此aspnet_compiler.exe命令编译站点,那么主页面也会被编译,并且不可更新:
C:\Windows\Microsoft.NET\Framework64\v4.0.30319\aspnet_compiler.exe -v / -p d:\SourceFolder d:\CompiledSite
如果我-x Skinable
在aspnet_compiler.exe中排除了可换肤文件夹(添加到命令),那么该文件夹不会被复制到输出文件夹,但主页仍然被编译到bin文件夹(即,skin.master.compiled
文件生成到构建中)夹).当我们将母版页复制到部署文件夹时,对该文件的更改将被忽略(它只是在编译时使用了母版页).
如果我在运行aspnet_compiler(attrib
+h d:\SourceFolder\Skinable
)之前隐藏了Skinable文件夹,那么我得到与上面相同的结果(即通过-x标志排除时)
如果我在运行aspnet_compiler.exe时指定-u标志(Updatable),那么,我不确定它的优点是诚实的,因为似乎没有在该实例中编译,因此编译即时进行当你要求一个页面时,重点是什么......
最后,如果我允许编译所有内容,然后进入bin文件夹并删除skin.master.compiled,那么当您请求使用该母版页的页面时,您会收到错误"文件'Skin.master'没有已预先编译,无法请求"
我怀疑对母版页的引用是这里的问题 - 也就是说,如果一个页面引用了一个母版页,那么如果你想编译页面,那么该母版页也必须编译,但我不确定.我在这里躲起来了吗?
如果你采取不同的方式怎么办?如果您“捕获”他们的 html 和 css 更改,然后为该公司创建一个新的 css 文件夹或文件,该怎么办?(文件是原始文件加上它们的更改。然后,当加载母版页时,它从数据库中提取公司使用的文件或文件夹,并将其从母版页的 c# 写入 css 中?
流程如下:
从本质上讲,这使得 css 更改在运行时根据您的客户端加载,并且您不必担心编译。
我们成功地使用这个过程来对不同颜色进行蒙皮。我们的文件夹系统就像:
归档时间: |
|
查看次数: |
280 次 |
最近记录: |