EmberJS 配置 prod img src url
EmberJS config prod img src url
Ember : 1.13.6
Ember Data : 1.13.7
我需要能够设置全局 属性 并在我的 .hbs 文件中使用它。可以说对于生产我需要从另一台服务器提供图像但在本地开发它们可以相对于项目被切断。
<img src="{{imgSrc}}/spinner.gif" alt="Loading..."/>
如何设置全局 属性 或配置并在我的 .hbs 文件中使用它?
这是我能想到的,似乎可行,但不知道它是否 "good idea"。
config/environment.js - 为 envs
设置可配置 imgSrc
属性
module.exports = function(environment) {
var ENV = {
//...
APP : {
imgSrc: '/prod/path/to/assets/'
}
//...
};
if (environment === 'development') {
ENV.APP.imgSrc = 'assets/images/';
}
app.js - 使 imgSrc
属性 在应用
中可用
import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';
import config from './config/environment';
var App;
//...
App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver: Resolver,
imgSrc: config.APP.imgSrc
});
//...
export default App;
----- 创建一个名为 img-src
的组件 -----
templates/components/img-src.hbs
<img src="{{imgSrc}}{{image}}" alt="{{alt}}"/>
components/img-src.js
import Ember from 'ember';
export default Ember.Component.extend({
tagName: 'div',
imgSrc: myApp.imgSrc
});
hbs 组件使用
{{img-src image="spinner.gif" alt="Loading..."}}
这样花的时间对吗?
Ember : 1.13.6
Ember Data : 1.13.7
我需要能够设置全局 属性 并在我的 .hbs 文件中使用它。可以说对于生产我需要从另一台服务器提供图像但在本地开发它们可以相对于项目被切断。
<img src="{{imgSrc}}/spinner.gif" alt="Loading..."/>
如何设置全局 属性 或配置并在我的 .hbs 文件中使用它?
这是我能想到的,似乎可行,但不知道它是否 "good idea"。
config/environment.js - 为 envs
设置可配置imgSrc
属性
module.exports = function(environment) {
var ENV = {
//...
APP : {
imgSrc: '/prod/path/to/assets/'
}
//...
};
if (environment === 'development') {
ENV.APP.imgSrc = 'assets/images/';
}
app.js - 使 imgSrc
属性 在应用
import Ember from 'ember';
import Resolver from 'ember/resolver';
import loadInitializers from 'ember/load-initializers';
import config from './config/environment';
var App;
//...
App = Ember.Application.extend({
modulePrefix: config.modulePrefix,
podModulePrefix: config.podModulePrefix,
Resolver: Resolver,
imgSrc: config.APP.imgSrc
});
//...
export default App;
----- 创建一个名为 img-src
的组件 -----
templates/components/img-src.hbs
<img src="{{imgSrc}}{{image}}" alt="{{alt}}"/>
components/img-src.js
import Ember from 'ember';
export default Ember.Component.extend({
tagName: 'div',
imgSrc: myApp.imgSrc
});
hbs 组件使用
{{img-src image="spinner.gif" alt="Loading..."}}
这样花的时间对吗?