`lift.js` is not generated since Lift 3.0.0, but rather is bundled with the lift-webkit JAR.
The HTML element that attaches it is generated based on the LiftRules.autoIncludeAjaxCalc
setting, which is a FactoryMaker. You can default it to false by using
LiftRules.autoIncludeAjaxCalc.default.set(() => false), or, in your case, you probably want to set
it on a per-request basis. For that, you can do:
LiftRules.autoIncludeAjaxCalc.request.set(() => false)
In the context of your request. If you want to set that decision up during boot, you can look at
LiftRules.autoIncludeComet decides whether or not the session's unique id will be attached to
the HTML. It can only make decisions based on the current session, however.
-----------------------
Now of course the above answers the "wrong" half of the question :) The real question is how
you get those two things into a page that doesn't have a `body` element. The unique id is not
a secret (the session id is, but it's not the same thing as the unique id that is sent down to the
client), so you can just access it as `uniqueId` on your LiftSession instance. Likewise, the Lift
JS doesn't change locations; you'll always find it (for Lift 3.0.0+) at:
contextPath + "/" + LiftRules.resourceServerPath + "/lift.js"
Note also that lift.js needs to be initialized. You can get the JS that initializes it by invoking:
LiftRules.javaScriptSettings.vend().map { settingsFn =>
LiftJavaScript.initCmd(settingsFn(this))
}
That will give you a `Box[JsCmd]` with the initialization JS.
lift.js looks for the Lift session unique id in the body's data-lift-session-id attribute, so you'll
want to set that before you call the initialization JS.
I hope this helps... Most of this isn't really set up or structured for consumption outside of
the framework at the moment, which is why it's not exactly a 1-step process.
Let us know if anything in there is hard to follow!
Thanks,
Antonio