我有静态Javascript文件main.js,在下面的变量中声明:
var base = '/localhost:8382/myservice' // for dev
//var base = '/example.com/myservice' // for prod
根据弹簧轮廓的开发或生产,它们具有不同的价值。我可以在application.properties中为dev和prod配置文件定义此变量。但是如何从main.js中访问此变量?
目前,我必须根据个人资料在main.js中手动注释掉其中一个。
该答案基于Thymeleaf2。如果您使用的是3,则可以看到此官方文档(链接)和示例(链接)
我会script
在这样的HTML中添加标签
<script th:inline="javascript">
var headParam = {
baseModelValue: /*[[@{${base}}]]*/,
baseBeanValue: /*[[@{${@customProperties.base}}]]*/
}
</script>
请注意,我@{...}
之所以使用,是因为这些值是URL。如果您不希望Thymeleaf重写您的URL,则不必使用它。如果不是URL,则不应使用它。
您可以从js文件中使用它,例如 headParam.baseModelValue
baseModelValue
如果您使用的是带有控制器传递值Model
。baseBeanValue
如果使用属性文件和配置文件,则使用类似。customProperties
是使用@ConfigurationProperties
注释的Bean名称。CustomProperties
类的例子:
@Repository
@ConfigurationProperties("foo")
public class CustomProperties {
private String base;
//Getters & setters
}
和一个YAML文件:
---
spring:
profiles: dev
foo:
base: /localhost:8382/myservice
---
spring:
profiles: prod
foo:
base: /example.com/myservice
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句