Assets grails 3.1.6
07/06/2016 11:34
0
Após realizar o upgrade da versão 3.0.x para 3.1.6 quando gero o war da minha aplicação não consigo acessar os assets(recebo sempre 404 not found).
Com o run-app os assets funcionam normalmente, alguém aqui passou por isso?
Tags: Grails


0
Oi Castiel,

verifique a chave de configuração grails.assets.url

Ela que define o padrão da URL de acesso aos recursos gerenciados pelo Asset Pipeline. Talvez você tenha uma configuração de produção diferenciada, o que venha a causar este problema que está enfrentando.


0
Olá, estou passando pelo mesmo problema. Tenho uma aplicação (3.1.14) que funcionar perfeitamente através do Intellij Idea, mas quando eu gero o arquivo .WAR (./gradlew assemble) e executo o mesmo (java -Dgrails.env=production -jar veedy-1.0.1-1.0.18.war) os assets não estão na aplicação.

Descompactando o arquivo .WAR, na raiz está a pasta com assets.

Qualquer ajuda é bem vinda.

Att.,
Robson
12/03/2017 22:45


0
Galera, desculpe pela insistência, mas estou tentando de diversas formas e não consigo fazer com que a minha aplicação funcione depois do deploy. Segue meu build.gradle, será que tem algo errado ou suspeito?

buildscript {
ext {
grailsVersion = project.grailsVersion
}
repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
}
dependencies {
classpath "org.grails:grails-gradle-plugin:$grailsVersion"
classpath "gradle.plugin.com.craigburke.gradle:bower-installer-gradle:2.5.1"
classpath "org.grails.plugins:hibernate4:5.0.5"
classpath "com.bertramlabs.plugins:asset-pipeline-gradle:2.8.2"
classpath "org.grails.plugins:views-gradle:1.0.12"
}
}

version "1.0.18"
group "veedy"

apply plugin:"eclipse"
apply plugin:"idea"
apply plugin:"war"
apply plugin:"org.grails.grails-web"
apply plugin:"org.grails.grails-gsp"
apply plugin:"com.craigburke.bower-installer"
apply plugin:"asset-pipeline"
apply plugin:"org.grails.plugins.views-json"
apply plugin: 'spring-boot'


springBoot {
executable = true
}

ext {
grailsVersion = project.grailsVersion
gradleWrapperVersion = project.gradleWrapperVersion
}

repositories {
mavenLocal()
maven { url "https://repo.grails.org/grails/core" }
}

dependencyManagement {
imports {
mavenBom "org.grails:grails-bom:$grailsVersion"
}
applyMavenExclusions false
}

dependencies {
assets "com.craigburke.angular:angular-template-asset-pipeline:2.2.6"
assets "com.craigburke.angular:angular-annotate-asset-pipeline:2.4.0"
assets "com.craigburke:js-closure-wrap-asset-pipeline:1.2.0"
compile "org.springframework.boot:spring-boot-starter-logging"
compile "org.springframework.boot:spring-boot-autoconfigure"
compile "org.grails:grails-core"
compile "org.springframework.boot:spring-boot-starter-actuator"
compile "org.springframework.boot:spring-boot-starter-tomcat"
compile "org.grails:grails-plugin-url-mappings"
compile "org.grails:grails-plugin-rest"
compile "org.grails:grails-plugin-codecs"
compile "org.grails:grails-plugin-interceptors"
compile "org.grails:grails-plugin-services"
compile "org.grails:grails-plugin-datasource"
compile "org.grails:grails-plugin-databinding"
compile "org.grails:grails-plugin-async"
compile "org.grails:grails-web-boot"
compile "org.grails:grails-logging"
compile "org.grails.plugins:cache"
compile "org.grails:grails-plugin-gsp"
compile "org.grails.plugins:hibernate4"
compile "org.hibernate:hibernate-ehcache"
compile "org.grails.plugins:views-json:1.0.12"
console "org.grails:grails-console"
profile "org.grails.profiles:angular:3.1.6"
runtime "com.h2database:h2"
runtime "com.bertramlabs.plugins:asset-pipeline-grails:2.8.2"
testCompile "org.grails:grails-plugin-testing"
testCompile "org.grails.plugins:geb"
testCompile "org.grails:grails-datastore-rest-client"
testRuntime "org.seleniumhq.selenium:selenium-htmlunit-driver:2.47.1"
testRuntime "net.sourceforge.htmlunit:htmlunit:2.18"


//custom
compile 'org.grails.plugins:spring-security-core:3.0.3'
compile "org.grails.plugins:mail:2.0.0.RC4"
compile "org.grails.plugins:grails-spring-websocket:2.3.0"
runtime 'mysql:mysql-connector-java:5.1.36'
}

task wrapper(type: Wrapper) {
gradleVersion = gradleWrapperVersion
}
bower {
'angular'('1.4.x') {
source 'angular.js'
}
'angular-resource'('1.4.x') {
source 'angular-resource.js' >> '/angular/'
}
'angular-mocks'('1.4.x') {
source 'angular-mocks.js' >> '/angular/'
}
'angular-bootstrap'('1.1.x') {
source 'ui-bootstrap-tpls.js' >> '/angular/'
}
'bootstrap'('3.x.x') {
source 'dist/css/bootstrap.css' >> '/bootstrap/'
}
}

assets {
minifyJs = true
minifyCss = true
}


bootRun {
// local.config.location is just a random name. You can use yours.
jvmArgs = ['-Dlocal.config.location=app-config.yml']
}
15/03/2017 12:37


0
Robson,

você já verificou se a configuração do Spring Security não está ocultando o controlador do Asset Pipeline? Dá uma olhada no seu arquivo application.groovy.
Talvez seja isto.


0
Robson eu gero meu war no intellig em:
https://drive.google.com/file/d/0Byuf5m4rHEL8Z3FRbEhISnFXanM/view
Fora isso é bom olhar os logs do Tomcat, pode ser que está pegando alguma coisa por lá.
16/03/2017 09:33


0
Heinrique, obrigado pela dica, creio que não seja este o caso, segue o arquivo.

grails.databinding.dateFormats = [
"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", // javascript format in json
"yyyy-MM-dd HH:mm:ss.S",
"yyyy-MM-dd'T'hh:mm:ss'Z'",
"yyyy-MM-dd'T'hh:mm:ssZ",
"dd.MM.yyyy"
]

//import grails.plugin.springsecurity.SpringSecurityUtils

// Added by the Spring Security Core plugin:
grails.plugin.springsecurity.userLookup.userDomainClassName = 'veedy.User'
grails.plugin.springsecurity.userLookup.authorityJoinClassName = 'veedy.UserRole'
grails.plugin.springsecurity.authority.className = 'veedy.Role'

grails.plugin.springsecurity.rejectIfNoRule = false
grails.plugin.springsecurity.fii.rejectPublicInvocations = false
grails.plugin.springsecurity.secureChannel.useHeaderCheckChannelSecurity = true
grails.plugin.springsecurity.portMapper.httpPort = 80
grails.plugin.springsecurity.portMapper.httpsPort = 443
grails.plugin.springsecurity.rememberMe.cookieName = 'streama_remember_me'
grails.plugin.springsecurity.rememberMe.alwaysRemember = true
grails.plugin.springsecurity.rememberMe.key = 'streama_Rocks123!!RememberMe'

grails.plugin.springsecurity.controllerAnnotations.staticRules = [

  [pattern:'/',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/index',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/index.gsp',  access :['IS_AUTHENTICATED_REMEMBERED']],

  [pattern:'/viewingStatus/**',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/file/**',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/stomp/**',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/websocket/**',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/video/dash',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/video/show',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/tvShow/show',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/movie/show',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/genericVideo/show',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/tvShow/episodesForTvShow',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/user/saveProfile',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/user/changePassword',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/theMovieDb/availableGenres',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/user/loginTarget',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/dash/**',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/tag.json',  access :['IS_AUTHENTICATED_REMEMBERED']],
  [pattern:'/tag/index',  access :['IS_AUTHENTICATED_REMEMBERED']],

  [pattern:'/genericVideo/**',  access :['ROLE_CONTENT_MANAGER']],
  [pattern:'/genre/**',  access :['ROLE_CONTENT_MANAGER']],
  [pattern:'/tvShow/**',  access :['ROLE_CONTENT_MANAGER']],
  [pattern:'/video/**',  access :['ROLE_CONTENT_MANAGER']],
  [pattern:'/theMovieDb/**',  access :['ROLE_CONTENT_MANAGER']],
  [pattern:'/movie/**',  access :['ROLE_CONTENT_MANAGER']],
  [pattern:'/episode/**',  access :['ROLE_CONTENT_MANAGER']],
  [pattern:'/tag/**',  access :['ROLE_CONTENT_MANAGER']],

  [pattern:'/user/**',  access :['ROLE_ADMIN']],
  [pattern:'/notificationQueue/**',  access :['ROLE_ADMIN']],
  [pattern:'/settings/**',  access :['ROLE_ADMIN']],
  [pattern:'/bulk/**',  access :['ROLE_ADMIN']],
  [pattern:'/monitoring/**',  access :['ROLE_ADMIN']],


  [pattern:'/file/serve',  access :['permitAll']],
  [pattern:'/user/current',  access :['permitAll']],
  [pattern:'/invite/**',  access :['permitAll']],
  [pattern:'/**/assets/**',  access :['permitAll']],
  [pattern:'/**/js/**',  access :['permitAll']],
  [pattern:'/**/css/**',  access :['permitAll']],
  [pattern:'/**/images/**',  access :['permitAll']],
  [pattern:'/**/favicon.ico', access :['permitAll']]
]

grails.plugin.springsecurity.filterChain.chainMap = [
  [pattern: '/**/assets/**', filters: 'none'],
  [pattern: '/**/js/**', filters: 'none'],
  [pattern: '/**/css/**', filters: 'none'],
  [pattern: '/**/images/**', filters: 'none'],
  [pattern: '/**/favicon.ico', filters: 'none'],
  [pattern: '/**', filters: 'JOINED_FILTERS']
]


grails.mail.default.from = "Veedy <info@veedy.com>"

grails.gorm.default.constraints = {
  '*'(nullable: true)
}
16/03/2017 10:45


0
Castiel, não tem mensagem nenhuma no log do tomcat, rodando a aplicação standalone tb não. Tem alguma forma de eu forçar maiores detalhes?
16/03/2017 10:46


0
Galera o meu problema era o bower, tirei do projeto comentando todas as referências para ele e tudo funcionou corretamente.
01/04/2017 12:18



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto