我们的项目取决于我们称之为“dataLayer”的grails插件,因为它将数据保存在不同的应用程序中。例如,共享域类,共享主题,css,javascripts。
这适用于资源插件。 现在我迁移到资产管道插件,它在使用inplace-plugins的开发环境中本地工作也很好。
在生产中在线使用相同的应用程序不起作用,因为css文件和js文件为空或缺失。
也许很高兴知道:我们的DataLayer插件包含grails-app /中的默认资源文件夹。我们有一个额外的文件夹,称为“主题”,包含我们主题的所有js和css。在javascript和css文件夹中,我们有一些文件声明文件作为主题文件夹中的要求。这在开发环境中工作正常。
例如grails-app / assets / javascripts / core.js中dataLayer插件中的core.js
//= require ../theme/assets/plugins/jquery-1.10.1.min
//= require ../theme/assets/plugins/jquery-migrate-1.2.1.min
// IMPORTANT! Load jquery-ui-1.10.1.custom.min.js before bootstrap.min.js to fix bootstrap tooltip conflict with jquery ui tooltip
//= require ../theme/assets/plugins/jquery-ui/jquery-ui-1.10.1.custom.min
//= require ../theme/assets/plugins/bootstrap/js/bootstrap.min
//= require ../theme/assets/plugins/jquery-slimscroll/jquery.slimscroll.min
//= require ../theme/assets/plugins/jquery.blockui.min
//= require ../theme/assets/plugins/jquery.cookie.min
//= require ../theme/assets/plugins/uniform/jquery.uniform.min
//= require ../theme/assets/scripts/app
另外要知道:我们使用二进制插件打包,因此dataLayer插件以二进制模式(无源)打包并上传到我们的maven存储库。从那里它在生产环境中得到解决。 ===>我认为这是问题所在。我认为assets文件夹没有打包到jar中。
这可能吗?如果是,我怎么能正确地将资产文件夹添加到包装中?
更新:仅在使用没有源的二进制插件时才会出现此问题。使用以下选项时,似乎grails包(maven-deploy --binary)不包含资产:
在插件描述符中:
def packaging = "binary"
在BuildConfig.groovy中:
grails.project.plugin.includeSource = false
来自web-app文件夹的静态图片,javascripts,css总是在目标jar中(无论我使用哪个选项),所以这似乎是资产管道问题。
答案 0 :(得分:0)
资产管道插件尚不支持二进制插件模式。该插件的开发人员David Estes正在研究它。您可以在此处找到问题:https://github.com/bertramdev/asset-pipeline/issues/98