GVKun编程网logo

部署后不会反映CSS文件中的更改(部署后不会反映css文件中的更改怎么办)

15

在本文中,我们将给您介绍关于部署后不会反映CSS文件中的更改的详细内容,并且为您解答部署后不会反映css文件中的更改怎么办的相关问题,此外,我们还将为您提供关于angularjs–更改指令中的控制器范

在本文中,我们将给您介绍关于部署后不会反映CSS文件中的更改的详细内容,并且为您解答部署后不会反映css文件中的更改怎么办的相关问题,此外,我们还将为您提供关于angularjs – 更改指令中的控制器范围变量不会反映在控制器功能中、Blogdown:更改学术主题中的CSS 修改.css和.scss文件创建一个custom.css、c – 为什么在重建工程之后,源代码的更改始终不会反映在机器代码中?、c# – 更改绑定到DataGridView的DataTable中的列顺序不会反映在视图中的知识。

本文目录一览:

部署后不会反映CSS文件中的更改(部署后不会反映css文件中的更改怎么办)

部署后不会反映CSS文件中的更改(部署后不会反映css文件中的更改怎么办)

我正在研究JSF Web应用程序.每当我第一次更改CSS文件并部署程序时,CSS文件中的更改都不会反映出来.我在不同情况下测试了它.这是怎么造成的,如何解决?

解决方法

yes when I press Ctrl+F5 it is loaded

然后它刚刚从浏览器缓存中提供.那很好.它在实际生产环境中节省了网络带宽.但我可以想象,这在开发过程中或者每当您将更新投入生产时都会令人不安.在开发过程中,我只是学会习惯按Ctrl F5键.但对于生产而言,你真的很想解决它,因为最终用户可能不会意识到这个“技巧”.

常见的方法是将版本号作为请求参数附加到CSS资源.

<link rel="stylesheet" href="style.css?v=1.0" />

每当您对CSS进行重大更改时,您都希望在将更新投入生产之前增加版本号.

<link rel="stylesheet" href="style.css?v=1.1" />

这将强制浏览器重新加载样式表.

另一种方法是使用服务器的启动时间.当您使用JSF时,可以使用在faces-config.xml中声明为应用程序范围的托管bean的java.util.Date轻松完成.

<managed-bean>
    <description>Startup date</description>
    <managed-bean-name>startup</managed-bean-name>
    <managed-bean-class>java.util.Date</managed-bean-class>
    <managed-bean-scope>application</managed-bean-scope>
</managed-bean>

然后你可以使用Date#getTime()来获取时间戳:

<link rel="stylesheet" href="style.css?#{startup.time}" />

这将生成到HTML中,如:

<link rel="stylesheet" href="style.css?1314105929937" />

每次重新启动服务器或重新部署webapp时它都会改变,因此浏览器将被强制重新加载资源(即使它实际上没有被更改!请记住,如果需要缓存和带宽使用,请记住这一点).相同的技术适用于其他静态资源,如JavaScripts和图像.

当您已经使用JSF 2.x时,您可以使用内置的“资源库版本控制”功能.另见What is the JSF resource library for and how should it be used?

angularjs – 更改指令中的控制器范围变量不会反映在控制器功能中

angularjs – 更改指令中的控制器范围变量不会反映在控制器功能中

在我的指令中,我有一个控制器变量,当你按下指令中的按钮时,页面会增加.但是,调用控制器函数的下一行scope.alertPage()不会反映此更改.请注意,当您单击按钮页面时仍然会被警告为1!

我知道我可以通过在控制器中添加$scope.$apply来解决这个问题.但是我得到的错误是已经发生了摘要.

Plunker:http://plnkr.co/edit/QSnBzM3gvJI9vnCkC19T?p=preview

app = angular.module('app',[]);

app.controller('myCtrl',function($scope) {

  $scope.page = 1;

  $scope.alertPage = function() {
    alert($scope.page);
  }

})

app.directive('incrementer',function() {
  return {
    scope: {
      page: '=',alertPage: '&'
    },template: '<button ng-click="incrementPage()">increment page</button>',link: function(scope,elem,attrs) {
      scope.incrementPage = function() {
          scope.page += 1;
          scope.alertPage();
      }
    }
  }
})

HTML模板:

<body ng-app='app' ng-controller='myCtrl'>
    page is {{page}}

    <incrementer page='page' alert-page='alertPage()'></incrementer>
  </body>
它没有立即显示更新值的原因是因为2路绑定仅在摘要周期期间更新父级(或指令的使用者范围)范围的绑定值.触发ng-click后会发生摘要循环.因此控制器中的$scope.page尚未更新.您可以通过使用超时来以多种方式解决这个问题,该超时会将操作推迟到摘要周期结束时运行.您也可以通过设置一个将值保存为双向绑定属性的对象来完成此操作.由于双向绑定属性和父作用域共享相同的对象引用,因此您将立即看到更改.

方法1 – 使用超时:

scope.incrementPage = function() {
     scope.page += 1;
     $timeout(scope.alertPage)
  }

方法2 – 绑定对象:

//In your controller
 $scope.page2 = {value:1};

//In your directive 
scope.incrementPage = function() {
     scope.page.value += 1;
     scope.alertPage();
 }

方法3 – 使用带参数的函数绑定传递值:

//In your controller
$scope.alertPage = function(val) {
  alert(val);
}

<!--In the view-->
<div incrementer page="page" alert-page="alertPage(page)"></div>

//In the directive
scope.incrementPage = function() {
     scope.page += 1;
     scope.alertPage({page:scope.page});
 }
app = angular.module('app',function($scope) {

  $scope.page = 1;
  $scope.page2 = {value:1};
  
  $scope.alertPage = function() {
    alert($scope.page);
  }
  
  $scope.alertPage2 = function() {
    alert($scope.page2.value);
  }

})

app.directive('incrementer',function($timeout) {
  return {
   
    scope: {
      page: '=',alertPage: '&',page2:"=",alertPage2: '&'
    },attrs) {
      scope.incrementPage = function() {
          scope.page += 1;
          scope.page2.value += 1;
          $timeout(function(){ scope.alertPage() });
          scope.alertPage2();
      }
    }
  }
})
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script>
<div ng-app="app" ng-controller="myCtrl">
  <div incrementer page="page" alert-page="alertPage()" page2="page2" alert-page2="alertPage2()"></div>
  </div>

Blogdown:更改学术主题中的CSS 修改.css和.scss文件创建一个custom.css

Blogdown:更改学术主题中的CSS 修改.css和.scss文件创建一个custom.css

如何解决Blogdown:更改学术主题中的CSS 修改.css和.scss文件创建一个custom.css?

我正在创建一个以blogdown和学术主题为主题的博客,现在看来on the repo of Wowchemy可以使用它。与以前的学术主题相比,此回购协议没有相同的结构,我有点迷茫。

我想更改一些CSS组件,但是我不知道该怎么做。这是我到目前为止尝试过的。

修改.css.scss文件

我试图修改public/css/academic.css文件和resources/_gen/assets/scss/scss/main.scss_6c95cc1249b26b124274204dbf970c34.content文件。在这两种情况下,更改都在blogdown::stop_server()blogdown::serve_site()之后重新设置。

在运行两个blogdown函数之前修改它们两个时,情况也是如此。

创建一个custom.css

正如Wowchemy documentation中所述,我试图将所做的更改放入assets/scss/custom.css中(我也必须创建`scss文件夹),但是显然它不会影响主题。


问题:如何在“新”学术主题中更改某些CSS参数?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

c – 为什么在重建工程之后,源代码的更改始终不会反映在机器代码中?

c – 为什么在重建工程之后,源代码的更改始终不会反映在机器代码中?

有时,当我在Qt项目中更改代码(Qt Creator 2.1.0 with mingw32)时,修改后的生成的机器代码就不会反映出这些变化.这主要发生在我更改构造函数中的默认值或方法/构造函数中的参数顺序时.通常,完全重建修复(但需要几分钟).

在建立之前,我正在帮助自己删除生成的可执行文件或库,这似乎大部分时间都是有帮助的.这是否意味着链接目标文件时出现问题?

我来自java / .net,我习惯了一种不同的行为.如果有人可以向我解释我在做错什么和/或指出一些相关的文章,我会很高兴.

谢谢!

解决方法

通常,在头文件更改后,应重新构建包含该头文件的所有源文件.
但是,qmake在这方面有点特别,您需要为当前目录以外的其他文件夹设置DEPENdpath.例如,如果有的话
INCLUDEPATH += somepath_in_my_project

还加了

DEPENdpath += some_path_in_my_project

只有使用DEPENdpath,如果some_path_in_my_project中的某些标题更改(如果它们包含该标题),则重建由.pro文件构建的文件!

我建议为每个INCLUDEPATH行添加相同的DEPENdpath行,除非您包含一些不希望更改的系统目录.

编辑:

当与qmake静态链接时,存在类似的问题:如果静态lib foo.a发生更改,则与它的二进制链接不会重新链接.这是QMake中的错误,不会生成正确的依赖关系.

我在前一个项目中找到的解决方法:

static:unix:TARGETDEPS += path_to_my/somestaticlib.a
static:win32:TARGETDEPS += path_to_my/somestaticlib.lib

编辑编辑:

自从有一段时间(Qt 5?),上面的代码应该使用POST_TARGETDEPS而不是TARGETDEPS.

c# – 更改绑定到DataGridView的DataTable中的列顺序不会反映在视图中

c# – 更改绑定到DataGridView的DataTable中的列顺序不会反映在视图中

运行应用程序时,DataGridView绑定到DataTable.稍后我以编程方式向DataTable添加更多列,并将其反映在基础数据中 – 即,“正常”列应该是它们应该是的.但是,这不会反映在DataGridView中.而是将列附加到最初生成的集合上.

这个例子证明,

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    public DataTable data = new DataTable();

    private void button1_Click(object sender,EventArgs e)
    {

        this.dataGridView1.DataSource = data;
        for (int i = 0; i < 5; i++)
        {
            this.data.Columns.Add(i.ToString());
        }
    }

    private void button2_Click(object sender,EventArgs e)
    {
        DataColumn foo = new DataColumn();
        this.data.Columns.Add(foo);
        foo.Setordinal(0);
    }

    private void button3_Click(object sender,EventArgs e)
    {
        foreach (DataColumn tmpCol in this.data.Columns)
        {
            Console.WriteLine("{0} : {1}",tmpCol.ColumnName,tmpCol.Ordinal);
        }
    }
}

按钮1生成列,按钮2添加一列并将序数设置为0,因此它应该在网格中首先显示,按钮3显示列的序数并显示它们应该在DataTable中的方式.

解决方法

这就是DataGridView的工作原理;启用自动生成列后,将额外(未映射)列附加到末尾.您可以取消绑定并重新绑定以修复它;将DataSource设置为null并返回到表:
this.dataGridView1.DataSource = null;
this.dataGridView1.Columns.Clear();
this.dataGridView1.DataSource = data;

我们今天的关于部署后不会反映CSS文件中的更改部署后不会反映css文件中的更改怎么办的分享已经告一段落,感谢您的关注,如果您想了解更多关于angularjs – 更改指令中的控制器范围变量不会反映在控制器功能中、Blogdown:更改学术主题中的CSS 修改.css和.scss文件创建一个custom.css、c – 为什么在重建工程之后,源代码的更改始终不会反映在机器代码中?、c# – 更改绑定到DataGridView的DataTable中的列顺序不会反映在视图中的相关信息,请在本站查询。

本文标签: