2016-09-26 22 views
2

キャッシュのクリアに関する問題があります。 私のコードは以下の通りです:基本的に私は古いHTML、JSファイルを見ていギャルのキャッシュバストが機能しない

App.js

require('angular') 
require('angular-ui-router') 
var MainController = require('./controllers/MainController') 

angular.module('app', ['ui.router']) 
.config(['$stateProvider', '$urlRouterProvider',function($stateProvider, $urlRouterProvider) { 

    $urlRouterProvider.otherwise('/home'); 

    $stateProvider 
     .state('home', { 
      url: '/home' 
      template: '<h1>Hello world !</h1>' 

     }) 

}]) 
.controller('MainCtrl', ['$scope', 'MainController']); 

Gulpfile.js

var gulp = require('gulp'); 
var sass = require('gulp-ruby-sass'); 
var connect = require('gulp-connect'); 
var browserify = require('browserify'); 
var source = require('vinyl-source-stream') 
var CacheBuster = require('gulp-cachebust'); 

var cachebust = new CacheBuster(); 



gulp.task('connect', function(){ 
    connect.server({ 
     root: 'public', 
     port: 4000 
    }) 
}) 

gulp.task('browserify', function(){ 

    return browserify('./app/app.js') 
    .bundle() 
    .pipe(source('main.js')) 
    //save it to public/js/ directory 
    .pipe(gulp.dest('./public/js/')) 
}) 
gulp.task('sass', function(){ 
    return sass('sass/style.scss') 
     .pipe(gulp.dest('./public/css')) 
}) 
//Cache buster 
gulp.task('build-css', function() { 
    return gulp.src('styles/*.css') 
     // Awesome css stuff 
     .pipe(cachebust.resources()) 
     .pipe(gulp.dest('public/css')); 
}); 

gulp.task('build-html', ['build-css'], function() { 
    return gulp.src('/*.html') 
     // Awesome html stuff 
     .pipe(cachebust.references()) 
     .pipe(gulp.dest('public')); 
}); 
gulp.task('build-js', ['build-css', 'build-html'], function() { 
    return gulp.src('/*.js') 
     // Awesome html stuff 
     .pipe(cachebust.resources()) 
     .pipe(gulp.dest('public/js')); 
}); 
gulp.task('watch', function(){ 
    gulp.watch('app/**/*.js', ['browserify', 'build-js']) 
    gulp.watch('sass/style.scss', ['sass', 'build-css']) 
    gulp.watch('index.html', [ 'build-html']) 
}) 

gulp.task('default', ['connect', 'watch']) 

。他の拡張子を確認していない。しかしおそらく、これは正しい実装ではないでしょう。

hereからnpmモジュールを使用しました。

正しく設定してください。

また、どのようにデバッグし、gulpのどのタスクを実行できるかを知るのに役立ちますか? Console.logステートメントは、私のスニペットに関する限り、何かを吐き出すのは面倒ではありません。

UPDATE: Index.htmlと

<!DOCTYPE html> 
<html lang="en" ng-app="app"> 
<head> 
    <meta charset="UTF-8"> 
    <title>My App</title> 
    <link rel="stylesheet" href="/css/style.css"> 
    <script src="/js/main.js"></script> 
</head> 
<body> 
    <div ng-controller="MainCtrl"> 
    <h1>{{message}}</h1>  
    <div ui-view></div> 
    </div> 
</body> 
</html> 

UDDATE 2

ここでGitのレポ

https://github.com/kushalmahajan/angular_boilerplate2.git

+0

コード例は劇的に変更されていますので、私のコメントは削除されました。 – Hampus

+0

build-htmlタスクの後にHTMLファイルを開くと、ファイル参照は生成されたファイル名と一致しますか?また、ブラウザーに読み込まれたソースを調べると、HTMLはファイルシステムと同じに見えますか? – Hampus

+0

正確ではありません。 htmlにはこれが反映されません。 '

' – kushalvm

答えて

1

gulp-cachebustの問題のように見えます。 gulp-cache

0

は、私はあなたは、あなたの問題を理解していなかったのです古いファイルを保存するので、

cachebust.resources()/ cachebust.references()

は右、動作していませんか?それが問題であれば、私は正しい答えを100%確信していませんが、ドキュメントを見て最初にMD5を変更してから参照を書き直さなければならないようです。)((CacheBuster.resourcesは())、その後(書き換えCacheBuster.references(それはがされているリソースへの参照を書き換えた。彼らのMD5チェックサムに応じに改称)だから私は、あなたが最初に名前を変更する必要がsupose )しかしそれは単なる理論です(そしておそらくあなたはすでに正しい順序でそれを呼んでいます)。しかし、あなたは(あなたが尋ねたよう)あなたゴクゴクコードをデバッグしたいとあなたがあなたの起動オプションに「デバッグゴクゴク」をごlaunch.jsonファイル

{ 
     //Name of configuration. 
     "name": "debug gulp", 
     "type": "node", 
     //Workspace relative or absolute path to the program. 
     "program":"${workspaceRoot}/node_modules/gulp/bin/gulp.js", 
     //Command line arguments passed to the program. 
     "args":["server"], 
     //Workspace path to the runtime to be debugged. 
     "cwd": "${workspaceRoot}", 
     //Enviroment variables passed to the program. 
     "env":{}, 
     "sourceMaps": true 
    } 

にこのコードを追加して呼び出すことができますVisual Studioのコードを持っている場合

。あなたはgulp javascript(.js)コードのどこにでもブレークポイントを置くことができます。

+0

問題が正しいです。しかし、Visual Studioをインストールするだけでデバッグするのはあまりにも多いです。 – kushalvm

+0

まあ、私は[this](http://www.greg5green.com/blog/debugging-gulp-js-tasks/)というWebで検索しています。ブラウザでデバッグすることができ、npmモジュールがグローバルにインストールされているだけです。グレゴリーグリーンはとてもうまく説明します。申し訳ありませんが、私は常にビジュアルスタジオコードメソッドを使用しています:P私は私が知っていることに答えました。 –

関連する問題