Я использую Middleman с параметром activate :asset_hash
, чтобы скомпилировать активы с хэшем, чтобы заставить кэш недействительным. Проблема в том, что я также загружаю некоторые html-шаблоны с Angular templateUrl следующим образом:
function($routeProvider) {
$routeProvider.
when('/dashboard', {
templateUrl: 'templates/dashboard.html',
....
но файл dashboard
скомпилируется с хешем, например, с templates/dashboard-cc1554f0.html
и поэтому Angular не находит файл.
Есть ли способ передать в Угловом файле тот же самый хэш, который создает Миддлэнт при сборке?
Я должен сказать вам, что я не встречал эту проблему (все мои js, css и изображения хешированы, но html файлы не). Вот мой Gemfile
Gemfile
# If you do not have OpenSSL installed, update
# the following line to use "http://" instead
source 'https://ruby.taobao.org'
gem "middleman", "~>4.0.0"
# Live-reloading plugin
# gem "middleman-livereload", "~> 3.2.0"
# For faster file watcher updates on Windows:
gem "wdm", "~> 0.1.0", :platforms => [:mswin, :mingw]
# Windows does not come with time zone data
gem "tzinfo-data", platforms: [:mswin, :mingw, :jruby]
gem "middleman-minify-html"
gem "middleman-sprockets", "~> 4.0.0.rc"
И вот мой config.rb
config.rb
set :css_dir, 'css'
set :js_dir, 'app'
set :images_dir, 'images'
set :layout, false
# Build-specific configuration
configure :development do
set :backend, 'http://localhost:3000'
set :frontend, 'http://localhost:4567/#'
end
configure :build do
set :backend, 'https://api.example.com'
set :frontend, 'https://www.example.com/#'
# For example, change the Compass output style for deployment
activate :minify_css
# Minify Javascript on build
activate :minify_javascript
# Minify HTML files on build, requires gem 'middleman-minify-html'
activate :minify_html
# Enable cache buster
activate :asset_hash
# gzip text files
activate :gzip
end
Вы можете видеть, что я использую Middleman 4.0.
Если ваша проблема остается после обновления посредника, возможно, вы можете переименовать свой js файл в xxx.js.erb
и попробовать помощник url_for
.
url_for
следующим образом:when('/dashboard', { templateUrl: '<%= url_for("templates/dashboard.html") %>'
но он не принял во внимание хэш ресурса